Ir ao conteúdo

C Programa idade mais velho e mais novo


Ir à solução Resolvido por herbertbahia,

Posts recomendados

Postado

Galera, estou precisando fazer um programa que receba a idade e o sexo de 50 pessoas e totalize em diversas categorias, imagino que eu consiga fazer, mas eu acabaria usando 50 variaveis, como fazer isso sem declarar tantas variaveis?

aqui vai o enunciado a ser seguido:

Citação

Elabore um programa que receba o sexo e a idade de 50 pessoas, verifique e mostre a idade da pessoa mais velha e da pessoa mais nova.

Inicie um laço de repetição com teste no final e:

a. Escreva: Idade do mais velho e do mais novo

b. Faça um laço de repetição com teste no início, e dentro do laço, pergunte a idade e o sexo para 50 pessoas.

c. Totalize:

     i. o total de homens;

     ii. o total de mulheres;

     iii. a idade da mulher mais nova;

     iv. a idade da mulher mais velha;

     v. a idade do homem mais novo;

     vi. a idade do homem mais velho;

 

Exemplo de saída:

 

                                                                      Idade do mais velho e do mais novo

 

Digite a idade da 1a pessoa..: 13

Digite o sexo da 1a pessoa..: F

 

Digite a idade da 2a pessoa..: 14

Digite o sexo da 2a pessoa..: M

 

                    ::

 

Digite a idade da 50a pessoa..: 14

Digite o sexo da 50a pessoa..: M

 

Total de homens......................:

Total de mulheres....................:

Idade da mulher mais nova.....:

Idade da mulher mais velha....:

Idade do homem mais novo....:

Idade do homem mais velho...:

 

Alguma ideia de como eu posso fazer isso que o professor pede?

  • Membro VIP
Postado
26 minutos atrás, Ragnarbrody disse:

Galera, estou precisando fazer um programa que receba a idade e o sexo de 50 pessoas e totalize em diversas categorias, imagino que eu consiga fazer, mas eu acabaria usando 50 variaveis, como fazer isso sem declarar tantas variaveis?

 

Tem pelo menos duas formas:

  1. Utilizar a mesma variável para ir lendo;
  2. utilizar um vetor de 50 posições.

Como os dados podem ser processados a medida que vai lendo, faz com a opção 1.

Se quiser, depois, faz com a opção 2. Onde primeiro vai ler todos os dados, depois processa.

 

Postado

@Simon Viegas Eu estou iniciando agora em C e acho que é melhor para começar a fazer com a mesma variavel para ir lendo, dito isso, eu consegui fazer com que o programa receba a idade e o sexo de 5 pessoa(50 seria muito para o teste) e que o programa exiba o total de homens e de mulheres, mas não sei como fazer exibir o homem mais novo e mais velho e a mulher mais nova e mais velha, tem como me explicar detalhadamente como fazer isso?

segue meu código:

#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
    setlocale(LC_ALL, "Portuguese");
	int id,i,M=0,F=0,idadeNovo=0, idadeVelho=0;
	char sexo;
	printf("Idade do mais velho e do mais novo\n");
	for(i = 1; i<=5; i++)
	{
		printf("Digite a idade da %iª pessoa: ",i);
		scanf("%d",&id);
		printf("Digite o sexo da %iª pessoa [F/M]: ",i);
		scanf("%*c %c",&sexo);
		if(sexo=='M' || sexo=='m')
       	{
            idadeNovo=id;
            idadeVelho=id;
            M++;
        }
        if(sexo=='F' || sexo=='f')
        {
            idadeNovo=id;
            idadeVelho=id;
            F++;
        }
	}
	printf("\nTotal homens:% d\nTotal de mulheres: %d\n",M,F);
}

 

  • Solução
Postado
#include <stdio.h>
#include <stdlib.h>
#define max 50


   int main(){
   	int cont=1,idade,a,homem,mulher,maisvelho=0,maisnovo=5000,maisvelha=0,maisnova=5000;
	char sexo;
    while (cont <= max){
    	
    	printf ("\nDigite a idade da %da pessoa : ",a);
		scanf("%d", &idade);
		printf ("\nDigite o sexo da %da pessoa(M ou F): ",a);
		scanf(" %c", &sexo);
		 if (sexo=='m'||sexo=='M'){
		 	homem+=1;
		 	if (idade>maisvelho)
		 		maisvelho=idade;
			if (idade<maisnovo)
		 		maisnovo=idade;
		
	}
		 else if (sexo=='f'||sexo=='F'){
		 	mulher+=1;
		 	if (idade>maisvelha)
		 		maisvelha=idade;
			if(idade<maisnova)
		 		maisnova=idade;
	}
		 else{
		 	printf("ERROR: Este programa nao conta emafroditas.");
		 	return (0);
		 }
        cont+=1; 
        a++;
		}
		system ("cls");
		if (homem!=0)
		printf("Total de homems :%d \n",homem);
		if (mulher!=0)
		printf("Total de mulheres : %d \n",mulher);
		if (maisnova!=5000)
		printf("Idade da mulher mais nova : %d \n",maisnova);
		if (maisvelha!=0)
		printf("Idade da mulher mais velha : %d \n",maisvelha);
		if (maisnovo!=5000)
		printf("Idade do homem mais novo : %d \n",maisnovo);
		if (maisvelho!=0)
		printf("Idade do homem mais velho :%d \n",maisvelho);
    }

 

  • Obrigado 1
Postado

@Simon Viegas Kkkk de qualquer forma obrigado XD 

 

Meu código:

#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    InicioID:
    setlocale(LC_ALL, "Portuguese");
	int id_sex,is2,Masc=0,Fem=0,idNovo, idVelho, idNova, idVelha;
	char sexo2, IS1;
	printf("Idade do mais velho e do mais novo\n");
	for(is2 = 1; is2<=6; is2++)
	{
		printf("Digite a idade da %iª pessoa: ",is2);
		scanf("%d",&id_sex);
		printf("Digite o sexo da %iª pessoa [F/M]: ",is2);
		scanf("%*c %c",&sexo2);
		if(sexo2=='M' || sexo2=='m')
        {
            Masc++;
            if(id_sex>idVelho)
            {
                idVelho=id_sex;
            }
            if(id_sex<idNovo)
            {
                idNovo=id_sex;
            }
        }
        else if(sexo2=='F' || sexo2=='f')
        {
            Fem++;
            if(id_sex>idVelha)
            {
                idVelha=id_sex;
            }
            if(id_sex<idNova)
            {
                idNova=id_sex;
            }
        }
        else
        {
            printf("\n");
            printf("ERRO!! Letra inválida!! Retorne ao ínicio!");
            printf("\n");
            system("pause");
            system("cls");
            goto InicioID;
        }
	}
	printf("\nTotal homens:% d\nTotal de mulheres: %d",Masc,Fem);
	printf("\n");
	printf("\nIdade Mulher mais velha: %d\nIdade Mulher mais nova: %d", idVelha, idNova);
	printf("\n");
	printf("\nIdade Homem mais velho: %d\nIdade Homem mais novo: %d", idVelho, idNovo);
	NovoGrupo1:
	printf("\n");
	printf("\nDeseja informar a idade e o sexo de outro grupo de pessoas? [S/N]");
	printf("\nR: ");
	IS1 = getche();
	if (IS1 == 's' || IS1 == 'S')
    {
        Masc=0;
        Fem=0;
        system ("cls");
        goto InicioID;
    }
    if (IS1 == 'n' || IS1 == 'N')
    {
        Masc=0;
        Fem=0;
        system ("cls");
    }
}

 

  • Membro VIP
Postado

@Ragnarbrody, testei o teu código e não funcionou muito bem aqui... a estrutura está com alguns probleminhas.

 

Tela testes 1:

 

tela1.png

 

Tela teste 2, com a mesma execução do programa anterior:

tela2.png

 

Tem algo errado aí...

 

Veja, na meu ponto de vista, você teria que parar para futucar o código e descobrir o que pode está acontecendo... mas existe vertentes que acham mais prático dizer que tem um problema e indicar logo onde está. Caso queira já saber a resposta, segue:
 

Spoiler

...então, para mim você precisaria verificar sozinho mesmo, 😆. Se não conseguir, tenta explicar o que não entendeu e quais partes está com dúvidas.

 

  • Curtir 2

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