Ir ao conteúdo
  • Cadastre-se
Bruno Monteiro_328512

**URGENTE** Exercicio Struct

Recommended Posts

Preciso fazer um programa assim:

 

Ler a quantidade de habitantes para a qual o usuário deseja digitar os dados da pesquisa;
 
Permitir que o usuário digite a pesquisa para a quantidade informada de habitantes no passo 1;
 
Criar funções para calcular e retornar:
 
A média do salário dos habitantes;
A média de idade dos pesquisados;
O percentual de habitantes do sexo feminino;
O percentual de habitantes do sexo masculino;
A média de filhos dos habitantes;
O maior número de filhos dentre os habitantes;
O menor número de filhos dentre os habitantes.
 
mas eu não consigo definir na hora que ele aceite a quantidade de vezes e grave na struct
 
 
#include <stdio.h>
 
//#define N 5
 
int N;
 
struct DadosPesquisa
{
int idade;
int sexo;
int sexo2;
    int filhos;
    float salario;
    
};
 
int main()
{
struct DadosPesquisa pesquisa;
 
 
    int i;
    int n = 0;
    int sexo;
 
float mediaIdade;
float mediaSalario;
float mediaFilhos;
 
int somaIdade = 0;
int somaFilhos = 0;
float somaSalario = 0;
int somaSexo1 = 0;
int somaSexo2 = 0;
 
printf("Informe a Quantidade de Habitante para Pesquisa");
scanf("%d",&n);
 
    
 
if (n <0 || n > 50)
{
          printf("Numero Invalido");
    }
    else 
    {
 
for (i=0; i<n; i++)
{
 
printf("Informe a Idade: ");
scanf("%d",&pesquisa.idade);
 
printf("Informe o Sexo: ");
scanf("%d",&pesquisa.sexo);
 
 
 
printf("Informe a Quantidade de FIlhos: ");
scanf("%d", &pesquisa.filhos);
 
printf("Informe o Salario: ");
scanf("%f", &pesquisa.salario);
 
}
 
// acumula valores de idade e nota para calcular a media
for (i=0; i<n; i++)
{
       
        
somaIdade = pesquisa.idade;
somaFilhos = pesquisa.filhos;
somaSalario = pesquisa.salario;
}
 
// calcula a media
mediaIdade = somaIdade / n;
mediaFilhos = somaFilhos / n;
mediaSalario = somaSalario / n;
 
 
printf("Media das IDades:  %d\n ",mediaIdade);
printf("Media de FIlhos: %d\n ", mediaFilhos);
printf("Media dos Salarios: %d\n",mediaSalario);
}
 
 
system("PAUSE");
 
}
 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Olha sou Iniciante em C e não sei se você já consegui resolver o seu problema, mas de todo modo, ai vai a minha sugestão . . .

 

- Aqui // #define N 5, está parte está sendo interpretada como um comentário retire //, além disso tanto #define N 5 quanto int N; não parecem ter qualquer uso no programa por hora, então eu as retirei.

 

- Você pode criar um vetor de estruturas para armazenar os dados da pesquisa referentes a cada pessoa, struct DadosPesquisa pesquisa [ 3 ]; neste caso coloquei para apenas tres pessoas . . .

 

- Coloque após os scanf(), alguma função que faça a limpeza de buffer de entrada do teclado, pois aqui tive problemas, ou pesquise na internet códigos de formatação adicionais que possam ser colocados dentro do scanf() e que façam a limpeza de buffer.

 

Atenção: Sobre por uma função de limpeza após cada scanf(), para o windows você muito provavelmente encontrará a função fflush ( stdin ); embora ela funcione, existem alertas sobre ela, onde ela pode apresentar um comportamento indefinido em alguns casos, por isso tente não usá-la . . . e se a usar esteja consciente de seus riscos . . .

 

- Os três alertas seguintes estavam relacionados ao fato de você ter colocado o código de formatação %d, para ler dados do tipo float, é só substitui-la por %.2f, neste caso o .2 limita o numero de casa decimais após a virgula . . .

 

|83|warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘double’

 

|84|warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘double’

 

|85|warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘double’

 

- E os tres alertas seguintes são relativos ao fato de que as variáveis foram declaradas mas não usadas pelo seu código . . .

 

|21|warning: unused variable ‘sexo’ [-Wunused-variable]|

|33|warning: unused variable ‘somaSexo1’ [-Wunused-variable]|

|33|warning: unused variable ‘somaSexo2’ [-Wunused-variable]|

 

 

Bom, por hora é só, tente usar as dicas acima e termine o codigo . . .

 

 

Ubuntu 14.04  GNU GCC 4.8  CodeBlocks 13.12

 

 

Espero Ter Audado ! ! !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×