Ir ao conteúdo
  • Cadastre-se

yDuba

Membro Pleno
  • Posts

    34
  • Cadastrado em

  • Última visita

Tudo que yDuba postou

  1. Olá, irei deixar trechos sobre este codigo, entretanto o objetivo do codigo é,verificar a existencia do da string telefone e variável tempo igual em dois arquivos, se existir igualdade, deve-se somar o tempo dos dois arquivos no primeiro, e o segundo receber o valor 0. O código esta funcionando, entretanto me encontro com o seguinte problema, após a receber mais de duas linhas em cada registro, sendo uma que contem a igualdade e outra não, as proximas linhas nao funcionam a verificação. Exemplo: Registro 1 tel:99 tempo:4 tel:55 tempo:1 tel:22 tempo:4 Registro 2: tel:99 tempo:4 tel:14 tempo:1 tel:22 tempo:4 Isto teria de resultar em : REGISTRO 1: tel:99 tempo8 tel:55 tempo:1 tel:22 tempo:8 Registro 2: tel:99 tempo:0 tel:14 tempo:1 tel:22 tempo:0 entretanto o que acontece como resultado é que o terceiro registro que contem a igualdade não esta somando nem zerando. Codigo: // aqui verifica a igualdade while(!feof(agenda1)){ fread(&chamada1,sizeof(dados1),1,agenda1); if(feof(agenda1)){ break; } while(!feof(agenda2)){ fread(&chamada2,sizeof(dados2),1,agenda2); if(feof(agenda2)){ break; } if(strcmp(chamada1.telefone,chamada2.telefone)==0 ){ if(chamada1.tempo == chamada2.tempo){ temp=chamada1.tempo; chamada1.tempo= chamada1.tempo+chamada2.tempo; fwrite(&chamada1,sizeof(dados1),1,agenda1); chamada2.tempo= 0; fwrite(&chamada2,sizeof(dados2),1,agenda2); strcpy(tel,chamada1.telefone); // abaixo a parte que exclui a linha que contem os valores iguais while(!feof(agenda1)){ fread(&chamada1,sizeof(dados1),1,agenda1); if(feof(agenda1)){ break; } if(strcmp(chamada1.telefone,tel) !=0 || chamada1.tempo != temp){ fwrite(&chamada1,sizeof(dados1),1,backup); } } fclose(backup); fclose(agenda1); } remove("ligacao1.txt"); rename("backup.txt","ligacao1.txt");
  2. Olá, gostaria de verificasse onde esta o erro na logica cujo o objetivo é, ler um vetor e os valores que forem maiores que 0(positivo) receber o valor 0. Exemplo {-5,-4,6,7}, usando recursividade deve retornar {-5,-4,0,0}.Lembrando, deve-se utilizar recursividade. #include <stdio.h> #include <stdlib.h> #include <math.h> recur(int vet[] ,int tamvet); int main() { int vet[100],tamvet,i,tamanho; printf("=======Tamanho do vetor========\n"); scanf("%d",&tamvet); printf("==================================\n"); printf("Entre com os dados do vetor \n"); for(i=0;i<tamvet;i++){ scanf("%d",&vet[i]); } printf("=================VETO LIDO======================\n\n"); for(i=0;i<tamvet;i++){ printf(" %d",vet[i]); } tamanho=tamvet-1; recur(vet,tamanho); printf("\n\n\n VETOR RECEBENDO 0 EM ENTRADA MAIOR QUE 0:\n"); for(i=0;i<tamvet;i++){ printf(" %d",vet[i]); } } recur(int vet[] ,int tamanho){ int i; if(vet[tamanho]>0){ return vet[tamanho]=0; } else{ return recur(vet,tamanho-1); } if(tamanho>0){ return recur(vet,tamanho); } }
  3. yDuba

    C Array struct e registro

    @devair1010 mas em que isto implica? pois tipo, o tamanho da minha placa serve apenas para dizer a quantidade de numeros que quero guardar nela, logo se estou fazendo placa de 'carros', devo usar um tamanho menor. Ou não? adicionado 2 minutos depois @devair1010 deixarei o enunciado aqui :listar todas as placas e os proprietários dos veículos que comecem com a letra 'A' e terminem com '0', '2' ou '7'. DICA: faça com que a placa seja um vetor de caracteres!
  4. yDuba

    C Array struct e registro

    @devair1010 Só que assim, independente dela ser maiuscula ou minuscula, essa sintaxe esta dando errado ;-; typedef struct{ char nome[200]; int chassi; int modelo; char marca[30]; char cor[20]; int combustivel; int ano; char placa[3]; }CAD;
  5. yDuba

    C Array struct e registro

    Mas nao é para verificar se é maiusculo, e sim se a letra A inicia na primeira posição da placa, e 2 ou 0 ou7 fincaliza o final de uma placa, se sim imprimir o propietario desta placa.
  6. Olá, estou tentando realizar a seguinte tarefa: Listar propietarios das placas dos carros que iniciam em A e finalizam em 0,2,7. Entretanto não esta funcionando, a variavel responsavel pela impressao apenas o ultimo valor lido. //leitura da vairavel que eu queria colocar em fgets mas a mesma não funcioana scanf("%s",&reg[i].placa); . . . . CAD listaB(CAD reg[], int nreg){ int j; for(j=0;j<nreg; j++){ if(reg[j].placa[0]== 'a'){ if(reg[j].placa[5]==0 || reg[j].placa[5]=='2' || reg[j].placa[5]=='7'){ printf(">>%s PLACA %s\n",reg[j].nome,reg[j].placa); } } } }
  7. Muito obrigada, me ajudou muito !!
  8. Olá, boa tarde.Gostaria de ajuda para excluir um registro. Já encontrei em outros tópicos algumas soluções, porém não consigo aplica-las pois não tenho o conhecimento de funções tipo, realloc , fread, fclose,free, entre outros. Então gostaria também da explicação de como se usa cada função que utilizarem para solucionar o problema. O codigo da parte onde tenho duvida: typedef struct { int nconta; char nome[200]; float saldo; }CONTA; //Definição da variavel global CONTA cad[15]; int n,op; //Declaração da subrotina CONTA cadastro(); CONTA exclui(); CONTA visu(); . . . //Subrotina para excluir a conta com o menor saldo CONTA exclui(){ //Declracao de variaveis int i,menor,num,ex; menor=0; for(i=0;i<n; i++){ if(menor<cad[i].saldo){ menor=cad[i].saldo; num=i; } } //parte que exclui o registro com o menor saldo ?? }
  9. Olá, tenho uma questão que se pede para descobrir os valores do coeficiente A e B, entretanto, na formula os valores de A e B não resultam corretamente. Ajuda? Enunciado da questão: Faça um programa que use uma subrotina para receber como parâmetro dois vetores, contendo valores da coordenada x e valores da coordenada y de pontos no plano cartesiano. A subrotina deve calcular os coeficientes a e b (conforme equações abaixo) de uma reta y=ax+b que é a regressão linear dos pontos. a=(nΣxy-Σx*Σy)/(nΣx2-(Σx)2 b=(Σy*Σx2-Σx*Σxy)/(nΣx2-(Σx)2) #include <stdio.h> #include <math.h> #define tam 2 void funcaoaeb( int va[], int vb[], int i); int main(){ //declaração de variaveis int va[tam],vb[tam], xa,ya,xb,yb,i; //Leitura de x e y para vetor a e b printf("Digite valores das cordenadas x e y do vetor A: \n"); for(i=0; i<tam; i++){ scanf("%d",&va[i]); } printf("\n Digite valores das coordenadas x e y do vetor B: \n"); for(i=0; i<tam; i++){ scanf("%d",&vb[i]); } funcaoaeb( va, vb, i ); } void funcaoaeb( int va[], int vb[], int i){ float n,a,b,somax,somay; // Solicita um valor n, pois o mesmo se encontra na formula de regressão linear, entretanto no algoritmo não especifica sua função. printf("Digite um valor N \n"); scanf("%d",&n); somax=(va[0]+vb[0]); somay=(va[1]+vb[1]); //descobrir valor de A e B a=((((n*(somax*somay)))-((somax)*(somay))) - ((somax*somay)) )/((n*(somax*somax))-((somax*somax)*(somax*somax))); b=(((somay)*(somax*somax))-((somax)*(somax*somay))) /((n*(somax*somax))-((somax*somax)*(somax*somax))); printf("valor de A: %.2f \n", a); printf("Valord de B: %.2f",b); }
  10. yDuba

    C Contagem de valores em C

    Sim, descobri apos criar o post, ai n tinha como excluir rs. Mas muito obrigado.
  11. Olá, neste codigo tenho que demostrar qual é a quantidade de vezes em que a prova 1 obteve a menor nota, além das menores nota de cada aluno. Entretanto a logica que imaginei para verificar a quantidade de menores notas em cada prova não funciona. Gostaria de ajuda. #include <stdio.h> #define lin 4 #define col 3 void exibirresultado(int provNot[][col]); int main(){ int provNot [lin][col]; int i,j; printf("\n #########################################\n"); for(i=0; i<lin; i++){ printf("Digite a nota do %d aluno:\n",i+1); for(j=0; j<col; j++){ printf("Prova %d :\n",j+1); scanf("%d",&provNot[i][j]); } } exibirresultado(provNot); } //SUBPROGRAMA// void exibirresultado( int provNot[][col]){ //DECLARAÇÃP DE VARIAVEIS int i,j,menor[lin*col],provMnot,p1,p2,p3 ; //TESTE DE VERIFICAÇÃO DE QUAL É A MENOR NOTA DE CADA ALUNO p1=p2=p3=0; provMnot=0; for(i=0; i<lin; i++){ menor[i]=99999999; for(j=0;j<col;j++){ if(provNot[i][j]<menor[i]){ menor[i]=provNot[i][j]; provMnot=j; // provMnot recebe a coluna do menor valor?? } } if(provMnot==1){ /// se o valor de provNot =1 p1 recebe ele +1, assim contabilando quantidade de notas menores na p1.???? p1=p1+1; } if(provMnot==2){ p2=p2+1; } if (provMnot==3){ p3=p3+1; } provMnot=0; } // IMPRESSÃO DO RELATORIO COM A MENOR NOTA DA CADA ALUNO printf(" \n*************** RELATORIO DE MENOR NOTA POR ALUNO *************** \n\n"); for(i=0;i<lin;i++){ printf(" ALUNO %d , MENOR NOTA = * %d * \n\n",i+1,menor[i]); } printf(" **************************************************************\n"); //IMPRESSÃO DO RESULTADO DE QUANTIDADE DE MENORES NOTA NAS P1 P2 E P3 printf("Prova %d ,quantidade de menor nota : %d \n", 1, p1); printf("Prova %d ,quantidade de menor nota : %d \n", 2, p2); printf("Prova %d ,quantidade de menor nota : %d \n", 3, p3); }
  12. Certo, tenho outra pergunta, é possivel um vetor de v[4] ou v[4][1] receber os dados de uma matriz [4][3]. Neste caso eu so quero receber os dados da primeira linha da matriz e exibi-los. Ex. void exibirresultado( int provNot[][col]){ int i,j,menor[4][1],aux ; for(i=0; i<lin; i++){ menor[i][0]=99999999; for(j=0;j<col;j++){ if(provNot[i][j]<menor[i][j]){ menor[i][j]=provNot[i][j]; } } } for(i=0;i<lin;i++){ printf("%d ",i+1); for(j=0;j<1;j++){ printf(" = %d \n",menor[i][j]); } } }
  13. Muito obrigado deu certo, queria entender que alem da mudança que você fez na parte do i e j iniciando com 0(algo que entendi),porque teve de utilizar tam e vez de numeros para definindo o tamanho do vetor? poís percebi que só funciona se utilizar TAM.;-;
  14. Olá, minha duvida é o seguinte, gostaria de saber como faço no código abaixo, para que minha matriz seja lida dentro do main, e após dentro do subprograma, um vetor receba os valores desta matriz e e exiba a matriz lida? #include <stdio.h> #define tam 4 void exibirresultado(int provNot[][3]); int main(){ int provNot [tam][3]; int i,j; printf("\n #########################################\n"); for(i=1; i<=tam; i++){ printf("Digite a nota do %d aluno:\n",i); for(j=0; j<3; j++){ printf("Prova %d :\n",j+1); scanf("%d",&provNot[i][j]); } } exibirresultado(provNot); } void exibirresultado(int provNot[][3]){ int i,j,teste[tam][3]; for(i=1; i<=tam; i++){ for(j=0;i<3;j++){ teste[i][j]=provNot[i][j]; } } for(i=1; i<=tam; i++){ for(j=0;i<3;j++){ printf("%d === %d",i, teste[i][j]); } } }
  15. @Pedrok97 Mesmo assim, tirando o '*'do i continua sem funcionar... Lendo alguns conteúdos, tive a impressão que para a variavel verificar[j] receber a raiz de n tenho de "void imprimaraiz (float n[], float verifica[], int i)". Fazendo isto aparece apenas o seguinte erro. 27 [Error] invalid operands of types 'float' and 'int' to binary 'operator%'. Agora não sei o que fazer.
  16. Olá, tenho um código ao qual o objetivo é verificar se os numeros digitados pelo usuario existe raiz quadrada exata. Entretanto estou com confusão na parte da criação de subprogramas, mais especificamente o uso da passagem de parâmetro. O código #include <stdio.h> #include <math.h> #include <stdlib.h> #define tam 5 void imprimaraiz(float* n[], int* i); int main (){ int i; float n[tam]; for (i=1; i<=tam; i++){ printf("Digite o % d valor: \n ",i); scanf("%f",&n[i]); } return 0; } void imprimaraiz(float* n[], int* i){ float j; float verifica[tam]; for (j=1; j<=tam; j++){ verifica[tam]= sqrt(n[i]); if(verifica[tam]%2==0){ printf("O numero %f é uma raiz quadrada exata! \n",verifica[tam]); } } }
  17. yDuba

    C Bubble Sort em C

    obrigadaaa, estava duas horas e nao estava vendo o erro no "x[i+1]"... muito obrigada mesmo
  18. yDuba

    C Bubble Sort em C

    Tenho um codigo para ser ordenado no modo bubbke sort, entretanto, acontece que a ordenação não esta funcionando, ajuda? #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int x[100],aux,i,j,qdeelementos; i=0; printf("Leitura da lista:\n"); do { printf(" \n [%d] :",i); scanf("%d",&x[i]); i++; } while ((x[i-1]) !=-99 && i<=100); if (i>100){ qdeelementos=i; }else { qdeelementos= i-1; } printf("%d", qdeelementos); printf("\n============ lista inserida========= \n"); for(i=0; i<qdeelementos;){ printf("-%d",x[i]); i++; } for(i=0; i<qdeelementos; i++){ for(j=0; j<qdeelementos-1; j++){ if( x[j] > x[j+1]) { aux = x[j]; x[j] = x[j+1]; x[i+1] = aux; } } } for(i=0; i<=qdeelementos-1;){ printf("\n -%d",x[i]); i++; } getch(); return 0; }
  19. #include <stdio.h> #include <stdlib.h> #include <math.h> main() { double k,pi,numtermos; printf("Digite a quantidade de termos: \n"); scanf("%lf",&numtermos); pi=0; k=0; do { pi = pi + 2 * powf(-1,k) * powf(3,0.5-k) / (2 * k + 1); k=k+1; } while (k < numtermos); printf("Valor de pi:\n"); printf("%lf",pi); getch(); return 0; } continua com o mesmo erro tanto se eu colocar < ou <= , >=,> ...
  20. muitooo obrigada, estou com o algoritmo que o professor passou, algumas coisas erradas, valeu adicionado 5 minutos depois Se não for pedir muito, poderia me ajudar nesta também ? o erro é o seguinte " Digite a quantidade de termos: 5 Valor de pi: -1.#IND00 -------------------------------- Process exited after 1.609 seconds with return value 0 Pressione qualquer tecla para continuar. . ." #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double k,pi,numtermos; printf("Digite a quantidade de termos: \n"); scanf("%lf",&numtermos); do { pi = pi + 2 * pow(-1,k) * pow(3,0.5-k) / (2 * k + 1); k=k+1; } while (k==numtermos); printf("Valor de pi:\n"); printf("%lf",pi); getch(); return 0; }
  21. #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float k, pi, prec, pianterior; printf("Digite a precisao:\n"); scanf("%f",&prec); pi=0; k=0; do{ pianterior = pi; pi = pi + 2 * pow(-1,k) * pow(3,0.5-k) / (2 * k + 1); k = k +1; }while ( abs(pi-pianterior) <= prec); printf("Valor com sua precisao: \n"); printf("%f",pi); return 0; getchar(); }
  22. é esta mesmo, estava 'estão' estressada que errei alguns termos.. obrigada .. fiz o teste na primeira vez rodou beleza, segunda vez n funciona apenas aparece para digitar a precisão e fica nisto;-; já abri ele no bloco de notas e executei e tal e nada... to com um outro programa com a mesma questão entretanto apenas para saber o valor de pi, como resultado me da " Digite a quantidade de termos que deseja: 4 Resultado de PI: -1.#IND00 Process returned 0 (0x0) execution time : 1.546 s Press any key to continue. "

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!