Ir ao conteúdo
  • Cadastre-se

**URGENTE** Exercicio Struct


Posts recomendados

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");
 
}
 
 
Link para o comentário
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 ! ! !

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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