Ir ao conteúdo
  • Cadastre-se

elyastrid

Membro Pleno
  • Posts

    29
  • Cadastrado em

  • Última visita

Tudo que elyastrid postou

  1. @devair1010 Não está puxando o nome do arquivo. adicionado 6 minutos depois @devair1010 O código está cadastrando sim, pois ele está salvando os novos cadastrados no arquivo txt, só não consigo fazer ele puxar os nomes.
  2. Preciso fazer uma pesquisa de uma string num vetor de 5 posições. Porém, ele não está puxando o nome no arquivo txt. Segue código abaixo. #include <stdio.h> #include <stdlib.h> #include <string.h> struct questionario{ char nome[40]; char sexo[20]; int idade; int renda; char fumante[10]; char esportes[10]; char atividade[10]; }; void limpa_linha() { scanf("%*[^\n]"); scanf("%*c"); } // Exibição do Menu // void exibir_menu (int op) { printf("\n 1-Cadastrar nova entrevista"); printf("\n 2-Pesquisar"); printf("\n 3- Gerar estatisticas\n"); } int main() { struct questionario respostas[5]; int i,op,posicao; char nomepesquisa[40]; FILE *arquivo; arquivo= fopen ("resposta.txt", "a"); if (arquivo != NULL) { printf ("\n Arquivo aberto com sucesso! \n"); } else{ printf("\n Erro na abertura do arquivo!"); } exibir_menu(op); scanf("%i",&op); fflush(stdin); // limpa buffer switch (op) { case 1: for (i=0;i<5;i++) { do { printf ("Digite o seu nome:"); scanf ("%s", respostas[i].nome); limpa_linha(); fprintf (arquivo, "\n Nome: %s ",respostas[i].nome); printf ("Digite o seu sexo - F p/Feminino, M p/ Masculino e O p/ Outro: "); scanf ("%s", respostas[i].sexo); limpa_linha(); fprintf (arquivo,"Sexo: %s ", respostas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &respostas[i].idade); limpa_linha(); fprintf (arquivo, "Idade: %d ", respostas[i].idade); printf ("Digite a sua renda:"); scanf ("%i", &respostas[i].renda); limpa_linha(); fprintf (arquivo, "Renda: %i ", respostas[i].renda); printf ("Eh fumante ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].fumante); limpa_linha(); fprintf (arquivo, "Eh fumante?: %s ", respostas[i].fumante); printf ("Gosta de esportes? - S p/ Sim e N p/ Nao:"); scanf ("%s", respostas[i].esportes); limpa_linha(); fprintf (arquivo, "Gosta de esportes?: %s ", respostas[i].esportes); printf ("Pratica atividade fisica ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].atividade); limpa_linha(); fprintf (arquivo, "Pratica atividade fisica?: %s ", respostas[i].atividade); printf ("\n Digite 1 para continuar cadastrando \n"); scanf ("%i", &op); }while (op ==1); fclose (arquivo); exibir_menu (op); scanf("%i",&op); } break; case 2: printf ("\n Digite o nome:"); scanf ("%s*c", nomepesquisa); limpa_linha(); do { arquivo= fopen ("resposta.txt", "r"); for (i=0;i<5;i++) { if(strcmp(respostas[i].nome,nomepesquisa)== 0) { printf("\n Pesquisa encontrada! "); posicao = i; } else { posicao = -1; } } if(posicao = -1) { printf(" \n Pesquisa nao encontrada! "); } else { printf(" \n Nome: %s ", respostas[i].nome); printf(" \n Sexo: %s ", respostas[i].sexo); printf(" \n Idade: %i ", respostas[i].idade); printf("\n Renda: %i", respostas[i].renda); printf ("\n Eh fumante?: %s", respostas[i].fumante); printf ("\n Gosta de esportes?: %s", respostas[i].esportes); printf ("\n Pratica atividade?: %s", respostas[i].atividade); } printf ("\n Digite 1 para continuar pesquisando \n"); scanf ("%i", &op); } while (op==1); fclose(arquivo); exibir_menu(op); scanf("%i", &op); break; } }
  3. @Lucas Mariani Pires Eu não posso declarar vetor inteiro como null.
  4. Preciso que o usuário informe a posição do vetor que ele deseja remover, remover o número da respectiva posição e printar o vetor a cada remoção. Como faço isso ? Segue código abaixo: #include <stdio.h> #include <stdlib.h> int main () { int vetor[10]= {2,4,6,8,10,12,14,16,18,20},valor, i,controle=0,posicao; int op; // Menu // printf ("\n Informe a operacao que deseja realizar: "); printf ("\n 1- para Buscar"); printf ("\n 2- para Remover Elementos \n"); scanf ("%i", &op); switch (op) { // BUSCAR // case 1: do { printf ("\n Informe um valor:"); scanf ("%i", &valor); // comparação // for (i=0;i<11;i++) { if (valor == vet[i]){ controle = 1; printf ("\n Parabens, o valor %i foi encontrado na posicao %i !", valor, i); } else { if (controle==0 && i==10) { printf ("\n O valor nao foi encontrado. Tente novamente!"); printf ("\n Pressione 1 para tentar novamente ou 2 para sair"); scanf ("%i", &op); } } } } while (op == 1 && controle==0); break; case 2: printf ("\n Informe a posicao do vetor que deseja remover:"); scanf ("%i",&posicao); for (i=0;i<11;i++) { if (i==posicao) { } break; default: printf ("\n Operacao invalida!"); } }
  5. Preciso criar um programa em C que permita que o usuário realize as operações: 1- Busca (usuário informa um valor, se o valor não pertencer ao vetor então ele deve informar o número novamente) 2- Remoção dos elementos (usuário informa posição e exibe na tela o vetor a cada remoção) O meu código está com problemas no laço if, pois ele exibe tanto o if quanto o else. ps: gostaria de uma explicação de como seria essa remoção do elemento do vetor. Segue código abaixo: #include <stdio.h> #include <stdlib.h> int main () { int vet[10]= {2,4,6,8,10,12,14,16,18,20}, i,valor; char op; // Menu // printf ("\n Informe a operacao que deseja realizar: "); printf ("\n 1- para Buscar"); printf ("\n 2- para Remover Elementos \n"); scanf ("%d", &op); switch (op) { // BUSCAR // case 1: do { printf ("\n Informe um valor:"); scanf ("%i", &valor); // comparação // for (i=0;i<11;i++) { if (valor == vet[i]) { printf ("\n Parabens, o valor %i foi encontrado na posicao %i !", valor, i); } else { printf ("\n O valor nao foi encontrado. Tente novamente!"); printf ("Pressione 1 para tentar novamente ou 2 para sair"); scanf ("%d", &op); } } } while (op == 1); break; } }
  6. Olá, preciso calcular a média da renda de todos os entrevistados, porém ele está me retornando o valor de 0. Como faço pra ele calcular corretamente ? #include <stdio.h> #include <stdlib.h> #include <string.h> struct questionario { char nome [40]; char sexo [40]; int idade; float renda; char fumante [40]; char esportes [40]; char atividade [40]; }; int op; void limpa_linha() { scanf("%*[^\n]"); scanf("%*c"); } int main () { char estatistica [40], nomepesquisa[40]; int i,total_h=0,total_m=0, faixa_e=0, total_f=0; float perc_h, perc_m, perc_faixa,perc_f, renda_media,renda_total=0; struct questionario respostas[5]; FILE *arquivo; arquivo= fopen ("resposta.txt", "w"); if (arquivo == NULL) { printf ("Erro na abertura do arquivo!"); } // cadastrando // do { for (i=0; i<5; i++) { printf ("Digite o seu nome:"); scanf ("%s", respostas[i].nome); limpa_linha(); fprintf (arquivo, "Nome: %s ",respostas[i].nome); printf ("Digite o seu sexo - F p/Feminino, M p/ Masculino e O p/ Outro: "); scanf ("%s", respostas[i].sexo); limpa_linha(); fprintf (arquivo,"Sexo: %s ", respostas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &respostas[i].idade); limpa_linha(); fprintf (arquivo, "Idade: %d ", respostas[i].idade); printf ("Digite a sua renda:"); scanf ("%2.f", &respostas[i].renda); limpa_linha(); fprintf (arquivo, "Renda: %2.f ", respostas[i].renda); printf ("Eh fumante ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].fumante); limpa_linha(); fprintf (arquivo, "Eh fumante?: %s ", respostas[i].fumante); printf ("Gosta de esportes? - S p/ Sim e N p/ Nao:"); scanf ("%s", respostas[i].esportes); limpa_linha(); fprintf (arquivo, "Gosta de esportes?: %s ", respostas[i].esportes); printf ("Pratica atividade fisica ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].atividade); limpa_linha(); fprintf (arquivo, "Pratica atividade fisica?: %s ", respostas[i].atividade); } fclose (arquivo); printf ("\n Digite 1 para continuar cadastrando:"); scanf ("%d", &op); } while (op==1); // pesquisar // do { arquivo= fopen ("resposta.txt", "r"); printf ("\n Digite 1 para pesquisar por Nome:"); scanf ("%d", &op); if (op==1) { printf ("\n Digite o nome:"); scanf ("%s", nomepesquisa); for (i=0;i<5;i++) { if (!strcmp(respostas[i].nome, nomepesquisa)){ printf ("\n Nome: %s \n Sexo: %s \n Idade: %i \n Renda: %2.f \n Eh fumante?: %s \n Gosta de esportes?: %s \n Pratica atividade fisica?:%s", respostas[i].nome, respostas[i].sexo, respostas[i].idade, respostas[i].renda, respostas[i].fumante, respostas[i].esportes, respostas[i].atividade); } } } fclose (arquivo); printf ("\n Digite 1 para continuar cadastrando:"); scanf ("%d", &op); } while (op==1); // gerar estatistica printf ("\n Digite 2 para gerar estatistica:"); scanf ("%d", &op); // percentual de homens e mulheres // if (op==2) { for (i=0;i<5;i++) { if (strcmp (respostas[i].sexo, "masculino") == 0) { total_h ++;} } perc_h = total_h * 100.0/5; // perc. homens for (i=0;i<5;i++) { if (strcmp (respostas[i].sexo, "feminino")==0) { total_m++;} } perc_m= total_m *100.0/5; // perc. mulheres printf("O percentual de homens e mulheres eh de: %2.f %2.f \n", perc_h, perc_m); // percentual de pessoas na faixa etária de 18 a 40 anos // for (i=0;i<5;i++) { if (respostas[i].idade >18) if (respostas[i].idade <40) { faixa_e ++; } } perc_faixa= faixa_e *100.0/5; printf ("O percentual de pessoas na faixa etaria de 18 a 40 eh de: %2.f \n", perc_faixa); // percentual de fumantes// for (i=0;i<5;i++) { if (strcmp (respostas[i].fumante,"sim") ==0) { total_f ++; } } perc_f= total_f * 100.0/5; printf ("O percentual de fumantes eh de: %2.f\n", perc_f); // renda média de todos os entrevistados // for (i=0;i<5;i++) { renda_total =respostas[i].renda ++; } renda_media = renda_total/5; printf ("A renda media de todos os entrevistados eh de: %2.f \n", renda_media); } fclose(arquivo); system ("pause"); return 0; } Segue a parte do código referente ao cálculo da renda: // renda média de todos os entrevistados // for (i=0;i<5;i++) { renda_total =respostas[i].renda ++; } renda_media = renda_total/5; printf ("A renda media de todos os entrevistados eh de: %2.f \n", renda_media);
  7. @devair1010 #include <stdio.h> #include <stdlib.h> #include <string.h> struct questionario { char nome [40]; char sexo [40]; int idade; float renda; char fumante [40]; char esportes [40]; char atividade [40]; }; int op; void limpa_linha() { scanf("%*[^\n]"); scanf("%*c"); } int main () { char estatistica [40], nomepesquisa[40]; int i,total_h=0,total_m=0, faixa_e=0, total_f=0; float perc_h, perc_m, perc_faixa,perc_f, renda_media,renda_total=0; struct questionario respostas[5]; FILE *arquivo; arquivo= fopen ("resposta.txt", "w"); if (arquivo == NULL) { printf ("Erro na abertura do arquivo!"); } // cadastrando // do { for (i=0; i<5; i++) { printf ("Digite o seu nome:"); scanf ("%s", respostas[i].nome); limpa_linha(); fprintf (arquivo, "Nome: %s ",respostas[i].nome); printf ("Digite o seu sexo - F p/Feminino, M p/ Masculino e O p/ Outro: "); scanf ("%s", respostas[i].sexo); limpa_linha(); fprintf (arquivo,"Sexo: %s ", respostas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &respostas[i].idade); limpa_linha(); fprintf (arquivo, "Idade: %d ", respostas[i].idade); printf ("Digite a sua renda:"); scanf ("%2.f", &respostas[i].renda); limpa_linha(); fprintf (arquivo, "Renda: %2.f ", respostas[i].renda); printf ("Eh fumante ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].fumante); limpa_linha(); fprintf (arquivo, "Eh fumante?: %s ", respostas[i].fumante); printf ("Gosta de esportes? - S p/ Sim e N p/ Nao:"); scanf ("%s", respostas[i].esportes); limpa_linha(); fprintf (arquivo, "Gosta de esportes?: %s ", respostas[i].esportes); printf ("Pratica atividade fisica ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].atividade); limpa_linha(); fprintf (arquivo, "Pratica atividade fisica?: %s ", respostas[i].atividade); } fclose (arquivo); printf ("\n Digite 1 para continuar cadastrando:"); scanf ("%d", &op); } while (op==1); // pesquisar // do { arquivo= fopen ("resposta.txt", "r"); printf ("\n Digite 1 para pesquisar por Nome:"); scanf ("%d", &op); if (op==1) { printf ("\n Digite o nome:"); scanf ("%s", nomepesquisa); for (i=0;i<5;i++) { if (!strcmp(respostas[i].nome, nomepesquisa)){ printf ("\n Nome: %s \n Sexo: %s \n Idade: %i \n Renda: %2.f \n Eh fumante?: %s \n Gosta de esportes?: %s \n Pratica atividade fisica?:%s", respostas[i].nome, respostas[i].sexo, respostas[i].idade, respostas[i].renda, respostas[i].fumante, respostas[i].esportes, respostas[i].atividade); } } } fclose (arquivo); printf ("\n Digite 1 para continuar cadastrando:"); scanf ("%d", &op); } while (op==1); // gerar estatistica printf ("\n Digite 2 para gerar estatistica:"); scanf ("%d", &op); // percentual de homens e mulheres // if (op==2) { for (i=0;i<5;i++) { if (strcmp (respostas[i].sexo, "masculino") == 0) { total_h ++;} } perc_h = total_h * 100.0/5; // perc. homens for (i=0;i<5;i++) { if (strcmp (respostas[i].sexo, "feminino")==0) { total_m++;} } perc_m= total_m *100.0/5; // perc. mulheres printf("O percentual de homens e mulheres eh de: %2.f %2.f \n", perc_h, perc_m); // percentual de pessoas na faixa etária de 18 a 40 anos // for (i=0;i<5;i++) { if (respostas[i].idade >18) if (respostas[i].idade <40) { faixa_e ++; } } perc_faixa= faixa_e *100.0/5; printf ("O percentual de pessoas na faixa etaria de 18 a 40 eh de: %2.f \n", perc_faixa); // percentual de fumantes// for (i=0;i<5;i++) { if (strcmp (respostas[i].fumante,"sim") ==0) { total_f ++; } } perc_f= total_f * 100.0/5; printf ("O percentual de fumantes eh de: %2.f\n", perc_f); // renda média de todos os entrevistados // for (i=0;i<5;i++) { renda_total+=respostas[i].renda; } renda_media = renda_total/5; printf ("A renda media de todos os entrevistados eh de: %2.f \n", renda_media); } fclose(arquivo); system ("pause"); return 0; } Só quero calcular a média da renda, quanto aos outros cálculos irei deixar assim mesmo. Fiz como pontuou aqui Porém, ele não me retorna o valor corretamente.
  8. Olá, estou com problemas no cálculo de média de renda no meu código. Segue código abaixo: #include <stdio.h> #include <stdlib.h> #include <string.h> struct questionario { char nome [40]; char sexo [40]; int idade; float renda; char fumante [40]; char esportes [40]; char atividade [40]; }; int op; void limpa_linha() { scanf("%*[^\n]"); scanf("%*c"); } int main () { char estatistica [40], nomepesquisa[40]; int i,total_h=0,total_m=0, faixa_e=0, total_f=0,renda_total=0; float perc_h, perc_m, perc_faixa,perc_f, renda_media; struct questionario respostas[5]; FILE *arquivo; arquivo= fopen ("resposta.txt", "w"); if (arquivo == NULL) { printf ("Erro na abertura do arquivo!"); } // cadastrando // do { for (i=0; i<5; i++) { printf ("Digite o seu nome:"); scanf ("%s", respostas[i].nome); limpa_linha(); fprintf (arquivo, "Nome: %s ",respostas[i].nome); printf ("Digite o seu sexo - F p/Feminino, M p/ Masculino e O p/ Outro: "); scanf ("%s", respostas[i].sexo); limpa_linha(); fprintf (arquivo,"Sexo: %s ", respostas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &respostas[i].idade); limpa_linha(); fprintf (arquivo, "Idade: %d ", respostas[i].idade); printf ("Digite a sua renda:"); scanf ("%2.f", &respostas[i].renda); limpa_linha(); fprintf (arquivo, "Renda: %2.f ", respostas[i].renda); printf ("Eh fumante ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].fumante); limpa_linha(); fprintf (arquivo, "Eh fumante?: %s ", respostas[i].fumante); printf ("Gosta de esportes? - S p/ Sim e N p/ Nao:"); scanf ("%s", respostas[i].esportes); limpa_linha(); fprintf (arquivo, "Gosta de esportes?: %s ", respostas[i].esportes); printf ("Pratica atividade fisica ? - S p/ Sim e N p/ Nao: "); scanf ("%s", respostas[i].atividade); limpa_linha(); fprintf (arquivo, "Pratica atividade fisica?: %s ", respostas[i].atividade); } fclose (arquivo); printf ("\n Digite 1 para continuar cadastrando:"); scanf ("%d", &op); } while (op==1); // pesquisar // do { arquivo= fopen ("resposta.txt", "r"); printf ("\n Digite 1 para pesquisar por Nome:"); scanf ("%d", &op); if (op==1) { printf ("\n Digite o nome:"); scanf ("%s", nomepesquisa); for (i=0;i<5;i++) { if (!strcmp(respostas[i].nome, nomepesquisa)){ printf ("\n Nome: %s \n Sexo: %s \n Idade: %i \n Renda: %2.f \n Eh fumante?: %s \n Gosta de esportes?: %s \n Pratica atividade fisica?:%s", respostas[i].nome, respostas[i].sexo, respostas[i].idade, respostas[i].renda, respostas[i].fumante, respostas[i].esportes, respostas[i].atividade); } } } fclose (arquivo); printf ("\n Digite 1 para continuar cadastrando:"); scanf ("%d", &op); } while (op==1); // gerar estatistica printf ("\n Digite 2 para gerar estatistica:"); scanf ("%d", &op); // percentual de homens e mulheres // if (op==2) { for (i=0;i<5;i++) { if (strcmp (respostas[i].sexo, "masculino") == 0) { total_h ++;} } perc_h = total_h * 100.0/5; // perc. homens for (i=0;i<5;i++) { if (strcmp (respostas[i].sexo, "feminino")==0) { total_m++;} } perc_m= total_m *100.0/5; // perc. mulheres printf("O percentual de homens e mulheres eh de: %2.f %2.f \n", perc_h, perc_m); // percentual de pessoas na faixa etária de 18 a 40 anos // for (i=0;i<5;i++) { if (respostas[i].idade >18) if (respostas[i].idade <40) { faixa_e ++; } } perc_faixa= faixa_e *100.0/5; printf ("O percentual de pessoas na faixa etaria de 18 a 40 eh de: %2.f \n", perc_faixa); // percentual de fumantes// for (i=0;i<5;i++) { if (strcmp (respostas[i].fumante,"sim") ==0) { total_f ++; } } perc_f= total_f * 100.0/5; printf ("O percentual de fumantes eh de: %2.f\n", perc_f); // renda média de todos os entrevistas // fscanf (arquivo,"%2.f", respostas[i].renda); for (i=0;i<5;i++) { renda_total ++; } renda_media = renda_total/5; printf ("A renda media de todos os entrevistados eh de: %2.f \n", renda_media); } fclose(arquivo); system ("pause"); return 0; }
  9. @iHollyZinhO Referente ao 1º problema, já me falaram sobre não ser necessário usar o operador &, mas preciso para poder armazenar o valor, caso contrário, meu programa não roda. 2º problema: Esqueci de apagar a parte referente ''s para sim e n para nao''.. Optei por deixar que o usuário digite "sim'' ou ''nao'' mesmo. Se trata de um vetor e uma string, a comparação é utilizada com strcmp. 3º Se a função sctrcmp for verdadeira, ele irá armazenar o valor numa variável do tipo int (exemplo: ele lê quais vetores possuem como resposta feminino p/ sexo e a quantidade é o número total de mulheres)
  10. Olá, estou com problemas na parte de calcular os percentuais. O que preciso fazer para calcular o percentual corretamente ? #include <stdio.h> #include <stdlib.h> #include <string.h> struct entrevistas { char sexo [40]; int idade; char fumante [40]; }; int main () { int i,total_f,total_homens,homens,total_mulheres, mulheres; float perc_f, perc_h,perc_m; struct entrevistas pessoas[10]; FILE *arquivo; arquivo= fopen ("resposta.txt", "w"); if (arquivo ==NULL) { printf ("Erro na abertura do arquivo"); } // armazenando respostas // for (i=0; i<9; i++) { printf ("Digite o seu sexo - F p/ Feminino e M p/ Masculino:"); scanf ("%s", &pessoas[i].sexo); fprintf (arquivo, "%s", pessoas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &pessoas[i].idade); fprintf (arquivo, "%d", pessoas[i].idade); printf ("Eh fumante ? - S p/ Sim e N p/ Nao:"); scanf ("%s", &pessoas[i].fumante); fprintf (arquivo, "%s", pessoas[i].fumante); } // percentual de fumantes em relação ao total // for (i=0;i<9;i++) { if (strcmp(pessoas[i].fumante, "sim") == 0) { scanf ("%i", &total_f); perc_f = total_f * 4/100; } printf ("O percentual de fumantes em relação ao total eh de: %2.f\n ", perc_f); } // percentual de homens não fumantes abaixo de 40 anos em relação ao total de homens // for (i=0;i<9;i++) { if (strcmp (pessoas[i].fumante, "nao") ==0) { if (pessoas[i].idade < 40) { scanf ("%i", &homens); if (strcmp(pessoas[i].sexo, "masculino")==0) { scanf ("%i", &total_homens); } } } perc_h = homens * total_homens /100; } printf ("O percentual de homens n fumantes abaixo de 40 em relação ao total de homens eh: %2.f \n", perc_h); // percentual de mulheres fumantes acima de 40 anos em relação ao total de mulheres// for (i=0;i<9;i++) { if (strcmp (pessoas[i].fumante, "sim") == 0) { if (pessoas[i].idade >40) scanf ("%i", &mulheres); if (strcmp (pessoas[i].sexo, "feminino") ==0 ) { scanf ("%i", &total_mulheres); } } perc_m = mulheres * total_mulheres / 100; } printf ("O percentual de mulheres fumantes acima de 40 em relação ao total de mulheres eh: %2.f \n", perc_m); fclose (arquivo); return 0; }
  11. Olá, sou iniciante em C e estou com dúvidas a respeito do meu código. Preciso que ele realize uma busca no meu arquivo txt, ou seja, o usuário digita um nome e se o nome estiver no arquivo, ele exibe todos os dados referentes a esse nome. Qual estrutura eu preciso utilizar para que ele realize a pesquisa e exiba os dados na tela ? #include <stdlib.h> #include <stdio.h> #include <string.h> struct Pesquisa{ char Nome[40]; char Sexo[10]; int Idade; float Renda; char Fumante[10]; char Esporte[10]; char Afisica[10]; }; int main(){ int i; struct Pesquisa vetor[1]; FILE *arquivo; arquivo = fopen("Respostas.txt" ,"w"); if(arquivo != NULL){ for(i=0; i<1;i++){ printf ("Informe seu Nome:"); scanf ("%s",&vetor[i].Nome); fprintf(arquivo, "Nome: %s\n", vetor[i].Nome); printf ("Informe seu sexo Para Masculino(M) para Feminino(F) ou O pra outros:"); scanf ("%s",&vetor[i].Sexo); fprintf(arquivo,"Sexo: %s\n" ,vetor[i].Sexo); printf ("Informe seu idade:"); scanf("%d",&vetor[i].Idade); fprintf(arquivo,"Idade: %d\n" , vetor[i].Idade); printf("Informe seu renda:"); scanf("%f",&vetor[i].Renda); fprintf(arquivo,"Renda:%f\n", vetor[i].Renda); printf("voce e Fumante Sim(S) ou Nao (N):"); scanf("%s",&vetor[i].Fumante); fprintf(arquivo, "Fumante: %s\n",vetor[i].Fumante); printf("voce Gosta de esporte Sim(S) ou Nao(N):"); scanf("%s",&vetor[i].Esporte); fprintf(arquivo,"Gosta de Esporte: %s\n", vetor[i].Esporte); printf("voce pratica Atividade Fisica:"); scanf("%s",&vetor[i].Afisica); fprintf(arquivo,"Pratica Atividade Fisica:%s\n",vetor[i].Afisica); } }else{ printf(" Erro"); } fclose (arquivo); system ("pause"); return 0; }
  12. @devair1010 Desculpa, não consigo entender seu código... eu só quero saber como faço pra pegar a string que está no txt e exibir na tela o nome + outros dados..
  13. Como eu colocaria esses dados na struct no inicio do código ?
  14. Olá, sou iniciante em C e estou com problemas no meu código. Na parte de pesquisar os clientes, ele não me retorna nada do arquivo. Segue código abaixo. #include <stdio.h> #include <stdlib.h> #include <string.h> struct questionario { char nome [40]; char sexo [40]; int idade; float renda; char fumante [40]; char esportes [40]; char atividade [40]; }; int op; int i; int main () { int i; struct questionario respostas[4]; FILE *arquivo; // MENU DE OPÇÕES // printf ("Digite 1 para cadastrar uma nova entrevista : \n"); printf ("Digite 2 para pesquisar uma entrevista : \n"); printf ("Digite 3 para gerar estatisticas sobre as entrevistas :\n "); scanf ("%d", &op); // CADASTRAR NOVA ENTREVISTA // switch (op) { case 1: arquivo= fopen ("resposta.txt", "a"); if (arquivo == NULL) { printf ("Erro na abertura do arquivo!"); } do { { printf ("Digite o seu nome:"); scanf ("%s", &respostas[i].nome); fprintf (arquivo, "Nome: %s \n",respostas[i].nome); printf ("Digite o seu sexo - F p/Feminino, M p/ Masculino e O p/ Outro: "); scanf ("%s", &respostas[i].sexo); fprintf (arquivo,"Sexo: %s \n", respostas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &respostas[i].idade); fprintf (arquivo, "Idade: %d \n", respostas[i].idade); printf ("Digite a sua renda:"); scanf ("%f", &respostas[i].renda); fprintf (arquivo, "Renda: %f \n", respostas[i].renda); printf ("Eh fumante ? - S p/ Sim e N p/ Nao: "); scanf ("%s", &respostas[i].fumante); fprintf (arquivo, "Eh fumante?: %s \n", respostas[i].fumante); printf ("Gosta de esportes? - S p/ Sim e N p/ Nao:"); scanf ("%s", &respostas[i].esportes); fprintf (arquivo, "Gosta de esportes?: %s \n", respostas[i].esportes); printf ("Pratica atividade fisica ? - S p/ Sim e N p/ Nao: "); scanf ("%s", &respostas[i].atividade); fprintf (arquivo, "Pratica atividade fisica?: %s \n", respostas[i].atividade); fprintf (arquivo,"----------------------------------------------------------------------- \n"); } fclose (arquivo); printf ("\n Digite 1 para continuar cadastrando:"); scanf ("%d", &op); } while (op==1); // PESQUISAR UMA ENTREVISTA // char nomepesquisa [40]; case 2: arquivo= fopen ("info.txt", "r"); printf ("\n Digite o nome:"); scanf ("%s ", &nomepesquisa); for(i=0;i<4;i++) { if (!strcmp(nomepesquisa,respostas[i].nome)) { printf ("\n Nome: %s",respostas[i].nome); printf ("\n Sexo: %s", respostas[i].sexo); printf ("\n Idade: %d", respostas[i].idade); printf ("\n Renda: %f", respostas[i].renda); printf ("\n Eh fumante?: %s",respostas[i].fumante); printf("\n Gosta de esportes?: %s", respostas[i].esportes); printf ("\n Pratica atividade fisica?: %s", respostas[i].atividade); } } break; system ("pause"); return 0; } }
  15. Olá, sou iniciante em C e estou com dúvida na resolução desse exercício. Segue enunciado, meu código e as dúvidas: 1- O IBOP realizou uma pesquisa a nível nacional e foram entrevistas 30 pessoas. Considere um arquivo de texto “resposta.txt” que contém as respostas de todas as pessoas entrevistadas. Cada registro armazena a resposta de uma pessoa entrevistada através dos seguintes campos: sexo (um caractere, podendo ser ‘M’ ou ‘F’), idade (valor inteiro), fumante (um caractere, podendo ser ‘S’ ou ‘N’). Faça um programa que leia este arquivo e responda as seguintes perguntas: •Qual é o percentual de fumantes em relação ao número total de pessoas entrevistadas? •Qual é o percentual de homens não fumantes abaixo de 40 anos em relação ao número total de homens entrevistados? •Qual é o percentual de mulheres fumantes acima de 40 anos em relação ao número total de mulheres entrevistadas? #include <stdio.h> #include <stdlib.h> #include <string.h> struct entrevistas { char sexo [40]; int idade; char fumante [40]; }; int main () { int i; float perc_f, perc_h, perc_m; struct entrevistas pessoas[4]; FILE *arquivo; arquivo= fopen ("resposta.txt", "w"); if (arquivo ==NULL) { printf ("Erro na abertura do arquivo"); } // armazenando respostas // for (i=0; i<3; i++) { printf ("Digite o seu sexo - F p/ Feminino e M p/ Masculino:"); scanf ("%s", &pessoas[i].sexo); fprintf (arquivo, "%s", pessoas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &pessoas[i].idade); fprintf (arquivo, "%d", pessoas[i].idade); printf ("Eh fumante ? - S p/ Sim e N p/ Nao:"); scanf ("%s", &pessoas[i].fumante); fprintf (arquivo, "%s", pessoas[i].fumante); } Coloquei apenas 4 pessoas para teste do for. Gostaria de saber como faço para calcular as porcentagens ?
  16. @r_Tray #include <stdio.h> #include <stdlib.h> #include <string.h> struct dados { char nome [40]; int telefone; }; int op; int i; int main (){ char pesquisar[40]; struct dados clientes[4]; FILE *arquivo; arquivo = fopen ("info.txt","w"); if (arquivo==NULL) { printf ("Erro na abertura do arquivo!"); } // armazenar os dados // for (i=0;i<3;i++) { printf ("Digite o seu nome:"); scanf ("%s",&clientes[i].nome); fprintf (arquivo, "Nome: %s \n", clientes[i].nome); printf ("Digite o seu telefone:"); scanf ("%d", &clientes[i].telefone); fprintf (arquivo, "Telefone: %d \n", clientes[i].telefone); fprintf (arquivo, "----------------------------------------- \n"); } fclose(arquivo); // pesquisar // char nomepesquisa[40]; int telefonepesquisa; do { arquivo= fopen ("info.txt", "r"); printf ("\n Digite 1 para pesquisar por Nome ou 2 p/ pesquisar por telefone:"); scanf ("%d", &op); switch (op) { case 1: printf ("\n Digite o nome:"); scanf ("%s", &nomepesquisa); for (i=0;i<3;i++) { if (clientes[i].nome == nomepesquisa) { printf ("\n Nome: %s \n Telefone: %d",clientes[i].nome, clientes[i].telefone); } } break; case 2: printf ("\n Digite o telefone:"); scanf("%d", &telefonepesquisa); for (i=0;i<3;i++) { if (clientes[i].telefone == telefonepesquisa) { printf ("\n Telefone: %d Nome: %s", clientes[i].telefone, clientes[i].nome); } } break; default: printf ("\n Opcao invalida:"); break; } printf ("\n Digite 1 para continuar pesquisando:"); scanf ("%d", &op); } while (op==1); fclose(arquivo); system ("pause"); return 0; } Onde eu deveria inserir esse void para limpar as linhas ? E não consigo executar quando pesquiso pelo nome, apenas pelo telefone...
  17. Olá, sou iniciante em C e estou com dúvidas em relação a esse exercício. Segue abaixo o exercício, meu código e minhas dúvidas. #include <stdio.h> #include <stdlib.h> #include <string.h> struct questionario { char nome [40]; char sexo [40]; int idade; float renda; char fumante [40]; char esportes [40]; char atividade [40]; }; int main () { char estatistica [40]; int i; struct questionario respostas[4]; FILE *arquivo; arquivo= fopen ("resposta.txt", "w"); if (arquivo == NULL) { printf ("Erro na abertura do arquivo!"); } for (i=0; i<4; i++) { printf ("Digite o seu nome:"); scanf ("%s", &respostas[i].nome); fprintf (arquivo, "Nome: %s \n",respostas[i].nome); printf ("Digite o seu sexo - F p/Feminino, M p/ Masculino e O p/ Outro: "); scanf ("%s", &respostas[i].sexo); fprintf (arquivo,"Sexo: %s \n", respostas[i].sexo); printf ("Digite a sua idade:"); scanf ("%d", &respostas[i].idade); fprintf (arquivo, "Idade: %d \n", respostas[i].idade); printf ("Digite a sua renda:"); scanf ("%f", &respostas[i].renda); fprintf (arquivo, "Renda: %f \n", respostas[i].renda); printf ("Eh fumante ? - S p/ Sim e N p/ Nao: "); scanf ("%s", &respostas[i].fumante); fprintf (arquivo, "Eh fumante?: %s \n", respostas[i].fumante); printf ("Gosta de esportes? - S p/ Sim e N p/ Nao:"); scanf ("%s", &respostas[i].esportes); fprintf (arquivo, "Gosta de esportes?: %s \n", respostas[i].esportes); printf ("Pratica atividade fisica ? - S p/ Sim e N p/ Nao: "); scanf ("%s", &respostas[i].atividade); fprintf (arquivo, "Pratica atividade fisica?: %s \n", respostas[i].atividade); fprintf (arquivo,"----------------------------------------------------------------------- \n"); } system ("pause"); return 0; } Gostaria de saber como faço para pesquisar um dos nomes já inseridos e mostrar na tela todos os dados da pessoa pesquisada ? E, quanto as estatísticas, eu teria que criar um if para puxar se as respostas são "S" ou "N" ?
  18. Olá, sou iniciante em C e estou com dúvidas na resolução desse exercício. Segue enunciado, meus código e minhas dúvidas abaixo. 1) Faça um programa que leia o nome e telefone de 10 clientes e armazene as informações fornecidas dentro de um arquivo de texto. Após o armazenamento, o seu programa deverá ser capaz de pesquisar um cliente sempre que necessário. #include <stdio.h> #include <stdlib.h> struct dados { char nome [40]; int telefone; }; int main () { int i; struct dados clientes[4]; FILE *arquivo; arquivo = fopen ("info.txt","w"); if (arquivo==NULL) { printf ("Erro na abertura do arquivo!"); } // armazenar os dados // for (i=0;i<3;i++) { printf ("Digite o seu nome:"); scanf ("%s",&clientes[i].nome); fprintf (arquivo, "%s \n", clientes[i].nome); printf ("Digite o seu telefone:"); scanf ("%d", &clientes[i].telefone); fprintf (arquivo, "%d \n", clientes[i].telefone); } fclose(arquivo); system ("pause"); return 0; } Em relação ao primeiro, gostaria de saber como faço para que o programa pesquise um cliente sempre que necessário ?
  19. Estou em dúvida nesse exercício. Segue abaixo o enunciado e o meu código: 1)Foi realizada uma pesquisa entre 500 habitantes de uma certa região. De cada habitante foram coletados os dados: idade, sexo, salário e número de filhos. Crie a estrutura de dados adequada para armazenar estas informações e faça uma função que armazene as informações digitadas pelo usuário na estrutura de dados criada. Faça também uma função que calcula a média do salário dos habitantes. #include <stdio.h> #include <stdlib.h> struct dados{ int idade; char sexo [40]; float salario; int nfilhos; }; int main () { int i; struct dados habitante[4]; for (i=0;i<4;i++) { printf ("Digite a sua idade:"); scanf ("%d", &habitante[i].idade); printf ("Digite o seu sexo - F p/ Feminino e M p/ Masculino:"); scanf ("%s", &habitante[i].sexo); printf ("Digite o seu salario:"); scanf ("%f", &habitante[i].salario); printf ("Digite o numero de filhos:"); scanf ("%d", &habitante[i].nfilhos); } system ("pause"); return 0; } Coloquei apenas 4 habitantes como um teste para o meu for. O exercício pede para que calcule a média de salário do total dos habitantes, ou seja, somar todos os salários e dividir pelo numero de habitantes total. Gostaria de saber como faço para que meu programa leia apenas os salários e some-os ?
  20. @allanxd Funcionou sim. O que isso significa ?
  21. @allanxd Arrumei o que pontuou, mas agora ele só vai até o segundo printf
  22. Olá, sou iniciante em c e estou tendo problemas com meu código: ele só pede para o usuário digitar a primeira informação. Segue exercício e código abaixo: 1) Fazer um programa que cria uma estrutura livro, que contém os elementos título, ano de edição, número de páginas e preço. Criar uma variável desta estrutura que é um vetor de 5 elementos. Ler os valores para a estrutura e imprimir a média do número de páginas do livros. #include <stdio.h> #include <stdlib.h> struct livro { char titulo [40]; int ano; int paginas; float preco; }; int main () { int i; struct livro dados_l [5]; for (i=0;i<4;i++); { printf ("\n Informe o titulo:"); scanf ("%c",&dados_l[i].titulo); printf ("\n Informe o ano:"); scanf ("%i", &dados_l[i].ano); printf ("\n Informe o numero de pgs:"); scanf ("%i", &dados_l[i].paginas); printf ("\n Informe o preco:"); scanf ("%2.f", &dados_l[i].preco); } }
  23. @isrnick @Sahrutar Obrigada pela ajuda e pelas dicas quanto a resolução dos exercícios.
  24. @Sahrutar Claro. #include "stdio.h" #include "stdlib.h" int main () { int vet1 [5]; int vet2 [5], maior, menor, i,j, matriz; for (i=0; i<=4;i++){ printf ("Diga o valor do vetor %d -> ", i+1); scanf ("%d", &vet1[i]);} // lê os dados maior=0; // assume que o maior valor está na primeira posição for (i=1; i<=4;i++); if (vet1[i] > vet1 [maior]); maior= i; // acha a posição do maior for (j=0;j<=4;j++); { menor=0; for (i=1;i<=4;i++) if (vet1[i] < vet1 [menor]); menor= i; vet2 [j] = vet1 [menor]; vet1 [menor] = vet1 [maior]; } for (i=0; i<=4; i++) printf ("%d \n", vet2 [i]); // imprime os dados return 0; }
  25. @Sahrutar Corrigi o erro, mas ele retorna valores completamente diferentes e não os números em ordem crescente

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!