1
resposta

Galera..alguem pode me ajudar com esse exercicio? Nao sei onde estou erradando

Bom dia. Gostaria de saber o que esta errado no meu codigo:

/* Foi feita uma pesquisa entre os habitantes de uma regiao. Foram coletados idade, sexo(M/F) e salario. Faca um programa que calcule e mostre:

  • A media dos salarios dos grupos;

  • A maior e a menor idade do grupo;

  • A quantidade de mulheres na regiao;

  • A idade e o sexo da pessoa que possui o menor salario;

    Finalize a entrada de dados ao ser digitado uma idade negativa. */

int main()

{ float salario = 0, soma_salario = 0, menor_salario = 0;

int idade, maior= 0, menor = 200, idade_menorsalario = 9999, qtd_mulheres = 0, qtd_habitantes = 0;

char sexo = 0, sexo_menorsalario = 0;

while(idade >=0){

        printf("Digite sua idade:\n");

        scanf("%d",&idade);

     if(idade < 0){

        break;
     }
        printf("Digite seu sexo 'M ou F':\n");

        scanf(" %c",&sexo);

        printf("Digite seu salario\n");

        scanf("%f"&salario);

        if ( sexo == 'F'){

            qtd_mulheres = qtd_mulheres + 1;
        }
        if ( salario > 0){

            soma_salario = soma_salario +salario;

            qtd_habitantes = qtd_habitantes + 1;
        }
        if ( idade > maior){

            maior = idade;
        }
        if( idade< menor){

            menor = idade;
        }
        if( salario < menor_salario){

            idade_menorsalario = idade;

            idade = menor_salario;

            sexo_menorsalario = sexo;
        }

}
        printf("A media salarial desse grupo eh: %.2f\n",soma_salario/qtd_habitantes);

        printf("A menor idade eh: %d e a maior idade eh: %d\n",menor,maior);

        printf("A quantidade de mulheres eh: %d\n",qtd_mulheres);

        printf("A idade da pessoa mais nova eh: %d O seu sexo eh: %c\n",idade_menorsalario,sexo_menorsalario,);

return 0;

}

1 resposta

Dicas:

Coloque seu código completo dentro do delimitador de código, pois facilita para a gente.

Se for usar de "snake_case" ou algum padrão assim, siga sempre esse padrão. Dessa forma, troque o nome "idade_menorsalario" por "idade_menor_salario".

Ao invés de declarar todas as variáveis que vai usar no topo do código, declare-as o mais próximo possível do momento em que vai usar pela primeira vez.

Coloque uma verificação se a quantidade de habitantes é zero, para evitar divisão por zero.

Na linha:

float salario = 0, soma_salario = 0, menor_salario = 0;

Você não colocou um valor bem alto para o menor salário antes do código começar. Se durante o código o usuário não especificar um valor menor que zero, não vai entrar no if( salario < menor_salario).

Na linha:

        printf("A idade da pessoa mais nova eh: %d O seu sexo eh: %c\n",idade_menorsalario,sexo_menorsalario,);

Você deixou uma vírgula sobrando antes do último parêntese.

Em:

        scanf("%f"&salario);

Faltou uma vírgula entre "%f" e &salario. O correto seria scanf("%f", &salario);