**URGENTE** Exercicio Struct - C/C#/C++ - Clube do Hardware
**URGENTE** Exercicio Struct
Por Bruno Monteiro_328512, 21 de junho de 2015 em C/C#/C++
Bruno Monteiro_328512 0
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
struct DadosPesquisa
int sexo2;
int filhos;
struct DadosPesquisa pesquisa;
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");
if (n <0 || n > 50)
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
somaIdade = pesquisa.idade;
somaFilhos = pesquisa.filhos;
somaSalario = pesquisa.salario;
// calcula a media
mediaIdade = somaIdade / n;
printf("Media das IDades: %d\n ",mediaIdade);
printf("Media de FIlhos: %d\n ", mediaFilhos);
printf("Media dos Salarios: %d\n",mediaSalario);
Bruno Monteiro_328512
ninguem sabe como me da uma luz para quando eu por a quantidade de vezes q quero ler o programa enviar para struct
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 . . .