viciado 1 Denunciar post Postado Novembro 23, 2008 Foi realizada uma pesquisa entre quinze habitante de uma região. Foram coletados estes dados de cada habitante: idade, sexo, salário e número de filhos. Informe a média do salário entre os habitantes, a menor e a maior idade do grupo e a quantidade de mulheres com três filhos que recebem até R$500,00 #include <stdio.h> #include <stdlib.h> float media(int salario[][j]){ float media; media = 0; int count; for(count=0;count<15;count++){ media = media + salario[i][count]; } float total; total = (media)/(15); return(total); } int maior(int idade[i][j]){ int maior = idade[0][0]; int i,j; for(i=0;i<15;i++) for(j=0;j<15;j++){ if(idade[i][j] > maior){ maior = idade[i][j]; } } return(maior); } int menor(int idade[i][j]){ int menor = idade[0][0]; int i,j; for(i=0;i<15;i++) for(j=0;j<15;j++){ if(idade[i][j] < menor){ menor = idade[i][j]; } } return(menor); } int filhos(char sexo[i][j], int salario[i][j], int filhos[i][j]){ int i,j; int count; for(i=0;i<15;i++) for(j=0;j<15;j++){ if(sexo[i][j]==feminino){ for(i=0;i<15;i++) for(j=0;j<15;j++){ if(filhos[i][j]==3){ for(i=0;i<15;i++) for(j=0;j<15;j++){ if(salario[i][j]<=500){ coun++; } } } } } } return(count); } int main(){ char sexo[15][20]; int idade[15][15]; int salario[15][15]; int filhos[15][15]; int i,j; for(i=0;i<15;i++){ printf("Digite o sexo\n"); gets(sexo[i]); } for(i=0;i<15;i++) for(j=0;j<15;j++){ printf("Informe a idade\n"); scanf("%d",&idade[i][j]); } for(i=0;i<15;i++) for(j=0;j<15;j++){ printf("Informe o salario\n"); scanf("%d",&salario[i][j]); } for(i=0;i<15;i++) for(j=0;j<15;j++){ printf("Informe o numero de filhos\n"); scanf("%d",&filhos[i][j]); } printf("A media de salario entre habitantes e: \n %f\n",media(salario[i][j])); printf("A maior idade do grupo e: \n %d \n",maior(idade[i][j])); printf("A menor idade do grupo e: \n %d \n",menor(idade[i][j])); printf("A quantidade de mulheres com 3 filhos que recebem ate R$500 e: \n %d \n",filhos(sexo[i][j], salario[i][j], filhos[i][j])); system("PAUSE"); return 0; } Tem muitos erros mais a ideia do que eu fiz esta correto? Quais seriam os erros e cmo eu poderia arrumar? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 23, 2008 Tentou compilar o código? Você não pode definir uma função assim: tipo funcai(tipo vetor) Não faz sentido colocar variáveis nos índices. Coloque constantes. A variável "total", na função "media", é desnecessária. Pode fazer assim logo após o loop: media /= 15; Isso atribui a "media" o valor de "media/15" Por que todos os vetores são bidimensionais? Por que há um loop dentro do IF que verifica se a pessoa é do sexo feminino? Pense bem no programa antes de começar a digitá-lo. PS: Novamente, USE AS TAGS CODE. Por favor... desse jeito é triste analisar um código. Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 23, 2008 Tentou compilar o código? Você não pode definir uma função assim: tipo funcai(tipo vetor) Não faz sentido colocar variáveis nos índices. Coloque constantes. A variável "total", na função "media", é desnecessária. Pode fazer assim logo após o loop: media /= 15; Isso atribui a "media" o valor de "media/15" Por que todos os vetores são bidimensionais? Por que há um loop dentro do IF que verifica se a pessoa é do sexo feminino? Pense bem no programa antes de começar a digitá-lo. PS: Novamente, USE AS TAGS CODE. Por favor... desse jeito é triste analisar um código. #include <stdio.h> #include <stdlib.h> float media(int salario[15][15]){ float media; media = 0; int count; for(count=0;count<15;count++){ media = media + salario[i][count]; } float total; total = (media)/(15); return(total); } int maior(int idade[15][15]){ int maior = idade[0][0]; int i,j; for(i=0;i<15;i++) for(j=0;j<15;j++){ if(idade[i][j] > maior){ maior = idade[i][j]; } } return(maior); } int menor(int idade[i][j]){ int menor = idade[0][0]; int i,j; for(i=0;i<15;i++) for(j=0;j<15;j++){ if(idade[i][j] < menor){ menor = idade[i][j]; } } return(menor); } int filhos(char sexo[15][20], int salario[15][15], int filhos[15][15]){ int i,j; int count; for(i=0;i<15;i++) for(j=0;j<15;j++){ if(sexo[i][j]==feminino){ for(i=0;i<15;i++) for(j=0;j<15;j++){ if(filhos[i][j]==3){ for(i=0;i<15;i++) for(j=0;j<15;j++){ if(salario[i][j]<=500){ coun++; } } } } } } return(count); } int main(){ char sexo[15][20]; int idade[15][15]; int salario[15][15]; int filhos[15][15]; int i,j; for(i=0;i<15;i++){ printf("Digite o sexo\n"); gets(sexo[i]); } for(i=0;i<15;i++) for(j=0;j<15;j++){ printf("Informe a idade\n"); scanf("%d",&idade[i][j]); } for(i=0;i<15;i++) for(j=0;j<15;j++){ printf("Informe o salario\n"); scanf("%d",&salario[i][j]); } for(i=0;i<15;i++) for(j=0;j<15;j++){ printf("Informe o numero de filhos\n"); scanf("%d",&filhos[i][j]); } printf("A media de salario entre habitantes e: \n %f\n",media(salario[i][j])); printf("A maior idade do grupo e: \n %d \n",maior(idade[i][j])); printf("A menor idade do grupo e: \n %d \n",menor(idade[i][j])); printf("A quantidade de mulheres com 3 filhos que recebem ate R$500 e: \n %d \n",filhos(sexo[i][j], salario[i][j], filhos[i][j])); system("PAUSE"); return 0; } Verifica o sexo pq pede as mulheres com três filhos que recebem até R$500,00 Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 23, 2008 Releia o que postei sobre a declaração das funções. Não entendi o objetivo de usar vetores bidimensionais. Explique-me o que pensou. Para mim, bastaria: salario[pessoa_0] = x salario[pessoa_1] = y ... Tentou compilar o código? Compilando você pdoe ver os erros. Olhe o que apareceu aqui: $ gcc -Wall teste.c -o teste && ./teste teste.c: Na função ‘media’: teste.c:8: erro: ‘i’ undeclared (first use in this function) teste.c:8: erro: (Each undeclared identifier is reported only once teste.c:8: erro: for each function it appears in.) teste.c: No nivel superior: teste.c:25: erro: ‘i’ undeclared here (not in a function) teste.c:25: erro: ‘j’ undeclared here (not in a function) teste.c: Na função ‘filhos’: teste.c:41: erro: ‘feminino’ undeclared (first use in this function) teste.c:48: erro: ‘coun’ undeclared (first use in this function) teste.c: Na função ‘main’: teste.c:82: aviso: passing argument 1 of ‘media’ makes pointer from integer without a cast teste.c:83: aviso: passing argument 1 of ‘maior’ makes pointer from integer without a cast teste.c:84: erro: type of formal parameter 1 is incomplete teste.c:85: erro: called object ‘filhos’ is not a function Compartilhar este post Link para o post Compartilhar em outros sites