Ir para conteúdo
Fórum Script Brasil

Justiceira

Membros
  • Total de itens

    44
  • Registro em

  • Última visita

Tudo que Justiceira postou

  1. Depois de tanto tempo consegui fazer...nossa tava sem tempo,mas ta ai conseguiiii valeu aos q ajudaram ai,Obrigada! :wub: main() { float *notas,n,me=0,media=0,aux; int i,j,v; char c; notas =(float *)malloc(MAX * sizeof(float)); for (i=0; i<MAX; i++){ printf("Entre com a Nota %d:\n", i); scanf("%f", notas+i); if(*(notas+i)<=0 ||*(notas+i)>=10){ printf("Entre com a Nota %d:\n", i); scanf("%f", notas+i); } else{ } } printf("\n"); for (i=0; i<MAX; i++){ n= *(notas+i); me=me+n; media=me/MAX; } printf("Media %.2f:\n",media); printf("\n\n"); for ( i =0; i< MAX-1; i++){ for ( j =i+1; j < MAX; j ++){ if(notas[i]>=notas[j]){ aux = notas[i]; notas[i] = notas[j]; notas[j] = aux; } } } printf("Maior Nota: %.1f\n", *(notas+i)); printf("\n"); for ( i =0; i< MAX-1; i++){ for ( j =i+1; j < MAX; j ++){ if(notas[i]<=notas[j]){ aux = notas[i]; notas[i] = notas[j]; notas[j] = aux; } } } printf("Menor Nota: %.1f\n", *(notas+i)); printf("\n\n"); free(notas); system("pause"); } [/codebox]
  2. A minha duvida era como saber quantos caracteres teriam sido informado pelo usuario excluindo os espaços é claro. Parece que consegui,compilei e rodou contando os caractes e tirando espaços em branco. main(){ FILE *prog; char ch; int conta=0,i=0,dig=0; prog=fopen("arqtext.txt","w"); printf("\n\tCriando"); while((ch=getche())!='\r') putc(ch,prog); fclose(prog); printf("\n\tVisualizando"); prog=fopen("arqtext.txt","r"); while(ch!=EOF) while((ch=getc(prog))!=EOF) printf("%c",ch); printf("\n\n"); fclose(prog); printf("\n\n"); prog=fopen("arqtext.txt","r"); do{ ch=getc(prog); if(ch!=' ') { conta++; i++;} else i++; }while(ch!=EOF); printf("Conta :%d\n",conta-1); printf("\n\n"); fclose(prog); [/codebox] Mas vlw
  3. Gostaria de saber como faria isso main(){ FILE *prog; char ch; //Criando ou Gravando po cima prog=fopen("arqtext.txt","w"); while((ch=getche())!='\r') putc(ch,prog); fclose(prog); printf("\n"); system("cls"); //Lendo o arquivo e Exibindo na tela prog=fopen("arqtext.txt","r"); while(ch!=EOF) while((ch=getc(prog))!=EOF) printf("%c",ch); printf("\n\n"); fclose(prog); printf("\n\n"); fclose(prog); system("pause"); } [/codebox]
  4. Vlw Jonathan Queiroz e Durub Deu certo!! pesq="/0"; printf("\tEscolha um Codigo para Pesquisa:\n"); printf("\t"); gets(str); if(((str[0]>='0')&&(str[0]<='9'))||((str[1]>='0') &&(str[1]<='9'))||((str[2]>='0')&&(str[2]<='9')) ||((str[3]>='0')&&(str[3]<='9'))||((str[4]>='0') &&(str[4]<='9'))) { pesq = atoi(str); if(pesq_codliv(pesq)==-1) printf("\tO Codigo não foi Encontrado\n\n",pesq); else exibe_um(pesq_codliv(pesq)); } else printf("Erro Digite um Codigo Valido"); [/codebox]
  5. :wacko: Na verdade o codigo todo é 574 linhas ainda,pensei q tinha diminuido bastante foi mal... Realmente deu certo era ponteiro if(...*pesq) ta Ok Mas quanto a converter eu converti porem mostra numeros estranhos.Coloquei itoa (v, pesq,10); depois do for na função Mas ainda tah errado Vou tentar mais outras coisas
  6. Eu fiz desse jeito e esta rodando por parte,porque ele não pega string so numero(E era o que eu queria),porem esta sempre mostrando codigo não encontrado! mesmo eu tendo preenchido com o codigo ...O que faço?? #include<stdio.h> #include<stdlib.h> #include <string.h> #define MAX 3 struct registro { int codlivro; char nomelivro[30]; float preço; int quant; }; struct registro tabela[MAX]; int is_numeric(const char *pesq){ int res = 1; while(*pesq){ if(!isdigit(*pesq)){ res = 0; break; } pesq++; } return res; } int preenche_tabela() { int i; char strnum[30]; for(i=0;i<MAX;i++){ printf("\t Registro %d \n\n",i); printf("\tCodigo do Livro : "); gets( strnum); tabela[i].codlivro = atoi( strnum); printf("\tNome do Livro : "); gets(tabela[i].nomelivro); printf("\tPreco : "); gets( strnum); tabela[i].preço = atof( strnum); printf("\tQuantidade : "); gets( strnum); tabela[i].quant = atoi( strnum); } } int exibe_um(int ind) { int i = 0; i = ind; printf("\t Registro %d \n\n",i); printf("\tCodigo do Livro : %d\n",tabela[i].codlivro); printf("\tNome do Livro : %s\n",tabela[i].nomelivro); printf("\tPreco : %.2f\n",tabela[i].preço); printf("\tQuantidade: %d\n\n",tabela[i].quant); return(ind); } char pesq_codliv(char pesq[]) { int i; for(i=0;i<MAX;i++) if(tabela[i].codlivro == pesq) return(i); return(-1); } main () { int i=0,argc; char esc=0,*argv[MAX],pesq[MAX]; while((esc != 'S') && (esc != 's')) { printf(" MENU \n"); printf("\tA ) Prencher a Tabela.\n"); printf("\tB ) Pesquisar um Livro por Codigo do Livro.\n"); printf("\tS ) Para Sair.\n\n"); printf("\tDigite sua Opcao:\n"); esc = getche(); system("cls"); switch(esc) { case 'S': case 's':{ exit(1); } case 'A': case 'a':{ preenche_tabela(); break; } case 'B': case 'b':{ printf("\tEscolha um Codigo para Pesquisa:\n"); printf("\t"); gets(pesq); /*while(!is_numeric(pesq)){ printf("\n\tCodigo : %s Invalido!\n\tInforme um codigo Valido\n",pesq); printf("\t"); getch(); system("cls"); printf("\tEscolha um Codigo para Pesquisa:\n"); printf("\t"); gets(pesq); } */ if(pesq_codliv(pesq)==-1) printf("\tO Codigo : %s não foi Encontrado !\n\n",pesq); else exibe_um(pesq_codliv(pesq)); printf("\n"); printf("\tPressione uma tecla para retornar ao menu principal...\n"); getch(); break; } default: { printf("\tOpcao Invalida\n"); exit(1); break; } system("pause"); } } }[/codebox]
  7. Como faço para comparar uma String c/ int ou vice-versa em C? Exemplo: Queria trabalhar só com int e se o cara digitar uma String o programa recusa. Tipo printf("\tErro!\n\tDigite um Codigo Valido!\n"); Já que estaria coletando Codigo(inteiro) porém se a pessoa digita letra mostra numeros tipo isso(2088809675)ou seja Erro! alguém Pode me ajudar??
  8. Esta sim funcionando Mais uma perguntinha?? Se eu quisesse por uma restrição onde somente digitasse 0,1,2,3,4,5,6,7,8,9 ou 10 para notas como faria com ponteiro??
  9. Preciso saber se esta certo esse codigo,meu professor quer que use ponteiros.Mas estou com um problema na hora de saber a maior e a menor nota....Como Faço me ajudem! #include <stdio.h> #include <stdlib.h> main() { float * p, notas[5],m,aux; int i,j,tam; printf ( " ------Nota----- "); p = notas; //Prenchendo o vetor for ( i = 0; i < 5; i ++) { printf ( "\nElemento %d: ", i); gets ( notas); tam=strlen( notas); * p ++ = atof ( notas); //if((*p >=0)||(*p <=10)) if((tam>=1)&&(tam<=2)){ }else exit(1); } printf ( "\n"); p = notas; //Exibindo a media das notas for ( i = 0; i < 5; i ++){ m +=(* p++ / 5); } printf ("\nMedia : %.1f\n",m); printf ( "\n"); p = notas; Exibindo Vetor for ( i = 0; i < 5; i ++) { printf ( "O valor do elemento %d é: %.1f\n", i, * p ++); } Exibindo Maior nota printf ("\n"); p = notas; printf ("\n-----Ordenando Notas------\n\n"); for ( i = 0; i < 5-1; i ++) for ( j =0; j < 5; j ++){ if(notas[i] >= notas[j]) { aux = notas[i]; notas[i] = notas[j]; notas[j] = aux; printf("Num:%.1f\n", * p); } } printf("Numero maior e :%.1f", * p ++); //Exibindo Menor nota p = notas; for ( i = 0; i < 5-1; i ++) for ( j =0; j < 5; j ++){ if(notas[i] <= notas[j]) { aux = notas[i]; notas[i] = notas[j]; notas[j] = aux; } } printf ("\nNumero menor e :%.1f\n", * p ++); system("pause"); }
  10. Existe alguma forma de obrigar o preenchimento dos campos codlivro, nomelivro, preço, quant ??para que nenhum registro seja preenchido incompleto?Ou que ao menos seja ignorado se for o caso?? Como faria isso?? :blush: Colocando um if(CONDIÇÃO??) na função preencher_tabela,apos cada leitura...
  11. Galera estou com um problema para somar os registros cadastrados,só os registros.Pensei em mostrar o MAX-1,mas e se a pessoa não preenchesse ?Daria errado então.Me ajudem!!! #include<stdio.h> #include<stdlib.h> #include <string.h> #define MAX 5 struct registro { int codlivro; char nomelivro[30]; float preço; int quant; }; struct registro tabela[MAX]; void preenche_tabela() { int i; char strnum[30]; fflush(stdin); for(i=0;i<MAX;i++) { printf("\n\nCodigo do Livro : "); gets(strnum); tabela[i].codlivro = atoi(strnum); printf("\nNome do Livro : "); gets(tabela[i].nomelivro); printf("\nPreco : "); gets(strnum); tabela[i].preço = atof(strnum); printf("\nQuantidade : "); gets(strnum); tabela[i].quant = atoi(strnum); } } void contar_reg() { int i,vt=0; for(i=0;i<MAX;i++) if((tabela[i].nomelivro,"")==0) vt; else vt++; printf("\nO Total de Registros Cadastrados na Tabela: %d\n",vt); } main (){ int vt,esc; { printf("\n MENU \n\n\n"); printf("0.ara Sair.\n"); printf("1.Prencher a Tabela\n"); printf("2.Contar o Total de Registros Cadastrados na Tabela.\n"); printf("\nDigite sua Opcao:\n"); scanf("%d",&esc); while(esc!=0) { switch(esc) { case 0: printf("\n FIM!!! \n"); break; case 1: { preenche_tabela(); break; } case 2: { contar_reg(); break; } } system ("pause"); } } } [/codebox]
  12. Vlw cara era isso mesmo que tava errado :rolleyes:
  13. Usei o Device,o problema é que não esta ordenando tudo só os nomes preciso que tudo seja ordenado junto #include<stdio.h> #include<stdlib.h> #include <string.h> #define MAX 10 /******************* Definição do Registro */ struct registro { int codlivro; char nomelivro[30]; float preço; int quant; }; struct registro tabela[MAX]; void preenche_tabela() { int i; char strnum[30]; for(i=0;i<MAX;i++) { printf("\n\n Registro %d ",i); printf("\n\nCodigo do Livro : "); gets(strnum); tabela[i].codlivro = atoi(strnum); printf("\nNome do Livro : "); gets(tabela[i].nomelivro); printf("\nPreco : "); gets(strnum); tabela[i].preço = atof(strnum); printf("\nQuantidade : "); gets(strnum); tabela[i].quant = atoi(strnum); } } void ordenar_tabcod() { int codlivro_aux; char nomelivro_aux[30]; float preco_aux; int quant_aux; int i,j; for(i=0;i<=MAX-1;i++) for(j=i+1;j<MAX;j++) { if(tabela[i].codlivro>tabela[j].codlivro) { strcpy(nomelivro_aux,tabela[i].nomelivro); codlivro_aux,tabela[i].codlivro; preco_aux,tabela[i].preço; quant_aux,tabela[i].quant; strcpy(tabela[i].nomelivro,tabela[j].nomelivro); tabela[i].codlivro=tabela[j].codlivro; tabela[i].preço=tabela[j].preço; tabela[i].quant=tabela[j].quant; strcpy(tabela[j].nomelivro,nomelivro_aux); tabela[j].codlivro=codlivro_aux; tabela[j].preço=preco_aux; tabela[j].quant=quant_aux; } } } void exibe_tabela() { int i; for(i=0;i<MAX;i++){ printf("\n\n Registro %d ",i); printf("\nCodigo do Livro : %d\n",tabela[i].codlivro); printf("Nome do Livro : %s\n",tabela[i].nomelivro); printf("preço : %.2f\n",tabela[i].preço); printf("Quantidade: %d\n\n",tabela[i].quant); } } main (){ preenche_tabela(); ordenar_tabcod(); exibe_tabela(); system ("pause"); }
  14. :P Acho q esta Resolvido,ou alguém tem alguma dica para melhorar este codigo!!!
  15. Em Linguagem C #include<stdio.h> #include<math.h> main() { float fx[80],f,p; int i,grau; f=0; printf("\nEntre com o Grau:\n"); scanf("%d",&grau); printf("\nAgora entre com a Função:\n"); printf("\nEntre com os Coeficientes da F(x):\n"); for(i=0;i<=grau;i++){ printf("\nCoeficientes de x^%d:",i); scanf("%f",&fx[i]); } printf("\nCalcular a Função em qual ponto ? :\n"); scanf("%f",&p); //Calculando for(i=0;i<=grau;i++) f=f+fx[i]*pot(p,i); printf("\nF(x) no ponto %2.f\n",p,f); } [/codebox] E de outro jeito também [codebox] #include<stdio.h> float pot (float,int); main() { float fx[80],f,p; int i,grau; f=0; printf("\nEntre com o Grau:\n"); scanf("%d",&grau); printf("\nAgora entre com a Função:\n"); printf("\nEntre com os Coeficientes da F(x):\n"); for(i=0;i<=grau;i++){ printf("\nCoeficientes de x^%d:",i); scanf("%f",&fx[i]); } printf("\nCalcular a Função em qual ponto ? :\n"); scanf("%f",&p); //Calculando for(i=0;i<=grau;i++) f=f+fx[i]*pot(p,i); printf("\nF(x) no ponto %2.f\n",p,f); } float pot(float base,int exp) { float result=1; if(exp>0) for(i=0;i<exp;i++) result=result*base else for(i=0;i<exp*-1;i++) result=result*1/base; return result; }
  16. Pensar numa estrutura de dado para armazenar f(x).E depois calcular f(x) ondedeve ser informado pelo usuario. Exemplo x²-x-1 x³-x-6 x³-x²+3 . . etc program funcao_matematica; uses crt; var e,x,c,n,funcao,f,calc:integer; begin clrscr; writeln('Informe um numero para a expoente da Fun‡Æo:'); readln(e); writeln('Informe um numero pra a constante:'); readln©; writeln('Informe um Numero para x:'); readln(x); calc:=1; n:=e; f:=0; while e<>0 do begin while n>=1 do begin calc:=calc*x; n:=n-1; f:=f+calc; e:=e-1; end; end; funcao:=f+c; writeln('Função:',funcao); readln; end.[/CODEBOX] me ajudem não consigo resolver,sei q tem problemas de lógica e muitos mais me deem dicas ai vlw
  17. valeu pela ajuda agora entendi mais. valeu mesmo!!
  18. O problema é que não sei como chamar essa procedure,é que estou começando e não entendi essa parte ou será q é erro de logica? Me ajudem
×
×
  • Criar Novo...