Ir ao conteúdo
  • Cadastre-se

C problema sobre programa em c que não consigo resolver


Posts recomendados

Exercício 1: Escreva um programa que lê um valor N e depois lê dados a respeito de N pessoas. Os dados são idade e salário. Ao final, o programa deverá: - Exibir a maior idade. - Exibir a menor idade. - Exibir a média de idade entre as pessoas que ganham R$ 3.000,00 ou mais. Ao invés disso, se nenhuma pessoa se enquadrar nessa categoria, exibir mensagem de aviso. - Exibir a média de idade entre as pessoas que ganham menos de R$ 3.000,00. Ao invés disso, se nenhuma pessoa se enquadrar nessa categoria, exibir mensagem de aviso. Importante: Cuidado com o tipo dos dados ao realizar uma divisão: idades inteiras podem ter uma média não inteira! O programa deve exibir corretamente a média também para estes casos. Exercício 2: Escreva um programa que lê dois valores inteiros base b e expoente e e então calcula o resultado de b e utilizando repetidas multiplicações.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Xaws

#include<stdio.h>

 

int main()

{

    int i, soma_idades, npessoas, idade, maior_ida, menor_ida;

    float media, salario;

 

    printf("Digite o numero de pessoas: ");

    scanf("%d", npessoas);

 

    menor_ida = 150;

    maior_ida = 0;

    soma_idades = 0;

    for(i=1; i<npessoas; i++){

 

    printf("Digite a idade da pessoa %d: ",i);

    scanf("%d", &idade);

    soma_idades = soma_idades + idade;

 

    printf("Digite o salario da pessoa %d: ",i);

    scanf("%f", &salario);

    }

if (idade > maior_ida){

        maior_ida = idade;

    }

        printf("A maior idade eh: %d", maior_ida);

 

    if (idade < menor_ida){

        menor_ida = idade;

    }

        printf("A menor idade eh: %d", menor_ida);

 

    if(salario >= 3000){

        media = (float)soma_idades / //aqui também

 

        printf("A media das idades das pessoas que ganham R$3000 ou mais eh %.2f: \n", media);

        }else printf("Nenhuma pessoa ganha mais de R$3000\n");

 

     if(salario < 3000){

        media = (float)soma_idades / //aqui n sei pelo o que dividir por causa da variavel indefinida

 

        printf("A media das idades das pessoas que ganham menos de R$3000 eh %.2f: \n", media);

        }else printf("Nenhuma pessoa ganha menos de R$3000\n");

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Guilherme Germany Barni  Cara,tentei aqui mais não consegui na moral .--.
 Eu até consegui fazer ele reconhecer o maior e o menor, mais se invertesse a ordem ele adicionava 1 a idade, isso com 2 idades se colocasse 3 ou mais ele só lia as 2 últimas linhas...
 Alguém que saiba ajuda o cara ai:atirador:
 O que eu posso te dizer é que achei alguns erros no seu código.
 

scanf("%d", npessoas); // Aqui faltou & (não compilava por esse erro)
for(i=1; i<npessoas; i++){ // aqui faltou = (<=) (não adicionava mais de 1 assim<, mais creio que essa parte seja erro no meu compilador)
printf("Digite a idade da pessoa %d: ",i); // Aqui não precisa nem desse %d nem desse i
printf("Digite o salario da pessoa %d: ",i); // nem aqui

@up :atirador:

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Guilherme Germany Barni      você não disse se o seu código é c ou c++,  mas parece que é c++ .

então organizei seu código para c++ e ele ficou assim :

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <vector>
using namespace std;
vector < float > salario;
vector < int   > idade  ;
int main()
{
    int npessoas,idad,i,soma_idades=0,maior_ida=0;
    int soma_idades2=0,menor_ida=150,k=0,x=0;
    printf("Digite o numero de pessoas: ");
    scanf("%d",&npessoas);
    float media=0,salari,media2=0;
    for(i=0;i<npessoas;i++){
        printf("Digite a idade da %d pessoa : ",i+1);
        scanf("%d",&idad);
        idade.push_back(idad);
        printf("Digite o salario da %d pessoa : ",i+1);
        scanf("%f",&salari);
        salario.push_back(salari);
        if (idade[i] > maior_ida){
            maior_ida = idade[i];
        }
        if (idade[i] < menor_ida){
            menor_ida = idade[i];
        }
    }
    printf("A maior idade eh: %d\n", maior_ida);
    printf("A menor idade eh: %d\n", menor_ida);
    for(i=0;i<salario.size();i++){
        if(salario[i] >= 3000){
            soma_idades = soma_idades + idade[i];
            k++;
        }
        if(salario[i] < 3000){
            soma_idades2 = soma_idades2 + idade[i];x++;
        }
    }
    media = (float)soma_idades/k;
    media2= (float)soma_idades2/x;
    if(k > 0){
        printf("A media das idades das pessoas que ganham R$3000 ou mais eh %.2f: \n", media);
    }else printf("Nenhuma pessoa ganha mais de R$3000\n");
    if(x > 0){
        printf("A media das idades das pessoas que ganham menos de R$3000 eh %.2f: \n", media2);
    }else printf("Nenhuma pessoa ganha menos de R$3000\n");
}

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...