-
Posts
29 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que elyastrid postou
-
@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.
-
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; } }
-
@Lucas Mariani Pires Eu não posso declarar vetor inteiro como null.
-
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!"); } }
-
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; } }
-
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);
-
@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.
-
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; }
-
@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)
-
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; }
-
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; }
-
@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..
-
Como eu colocaria esses dados na struct no inicio do código ?
-
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; } }
-
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 ?
-
@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...
-
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" ?
-
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 ?
-
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 ?
-
@allanxd Funcionou sim. O que isso significa ?
-
@allanxd Arrumei o que pontuou, mas agora ele só vai até o segundo printf
-
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); } }
-
@isrnick @Sahrutar Obrigada pela ajuda e pelas dicas quanto a resolução dos exercícios.
-
@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; }
-
@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