Ir ao conteúdo
  • Cadastre-se

elyastrid

Membro Pleno
  • Posts

    28
  • Cadastrado em

  • Última visita

posts postados por elyastrid

  1. 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;       
    }
        
    }

     

    • Obrigado 1
  2. 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!");
    	   	
    }
    
    	
    }

     

    • Curtir 1
  3. 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;	
    }
    
    	
    }

     

    • Curtir 1
  4. 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);
    
    		

     

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

     

    8 horas atrás, devair1010 disse:

    renda_total+=respostas[i].renda;

    Porém, ele não me retorna o valor corretamente.

    • Curtir 1
  6. 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;
    }

     

    • Curtir 1
  7. @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.

    28 minutos atrás, iHollyZinhO disse:

    char fumante; scanf("%c", &fumante); if(fumante == 'S') printf("Fumante!"); else printf("Nao fumante!");

    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)

    • Curtir 1
  8. 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;
    	
    }

     

    • Curtir 1
  9. 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;
    }

     

    • Obrigado 1
  10. 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;
    
    }
    }

     

    • Curtir 1
  11. 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 ? 

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

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

     

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

    • Obrigado 1
  15. 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);
    }
    }

     

  16. @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;
    }

     

  17. @Sahrutar O segundo exercício consegui concluir com o que me apontou. Agora, referente ao primeiro, coloquei essa parte

    1 hora atrás, Sahrutar disse:

    for (i=0; i<=4;i++){ printf ("Diga o valor do vetor %d -> ", i+1); scanf ("%d", vet1);} // lê os dados

    Entretanto, ele só pede o valor uma única vez e não me retorna nada...

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!