Ir ao conteúdo

Posts recomendados

Postado

Olá, sou novo aqui no forum então me desculpe se o topico estiver no lugar errado ou algo do tipo.

 

Bom, as atividades da minha faculdade pararam por causa da quarentena e como eu quero aprender mais sobre C eu pesquisei alguns exercícios na internet e teve 1 exercício que eu não estou conseguindo prosseguir. Em um breve resumo o exercício pede para que o usuário inserir a idade e o sexo de 50 pessoas e pede para mostrar o total de homens e total de mulheres, a mulher mais nova e a mais velha, o homem mais novo e o mais velho. E eu não estou conseguindo pensar em uma forma do programa me apresentar o total de cada um e a idade mais nova e mais velha de cada um dos sexos.

Programa que estou usando é o DEV C++
Segue abaixo meu código. (Ele não está completo pois eu queria saber se o codigo iria me apresentar a idade da mulher mais velha).
Outra obs. O for ta com o número 4 pois não sou besta de ficar escrevendo 50 vezes hahaha.

#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    setlocale(LC_ALL, "Portuguese");
    int id[4],i,j,idMnova, idMvelha, idHnovo, idHvelho;
    char sexo[4];
    printf("Idade do mais velho e do mais novo\n");
    for(i = 1; i<=4; 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=='f' || sexo=='F')
    {
        if(id>idMvelha)
        {
         idMvelha+=id;                    
        }
    }
    printf("A mulher mais velha tem: %d de idade",idMvelha);
} 

Se alguem conseguir me dar uma luz de como fazer esse código funcionar eu ficaria muito grato e estaria contribuindo com meu aprendizado, lembrando que não quero que me deem o codigo pronto pois sei que todos aqui são contra o desaprendizado. Desde já agradeço.

Postado

Eu utilizaria uma array para armazenar os valores das entradas, e colocaria as condições e a array dentro de uma estrutura de repetição(loop), assim, cada entrada seria automaticamente checada e testada pelas condições.

  • Obrigado 1
Postado

@TORYM  Certo, seguindo o que você disse seria algo do tipo?

[...]
	for(i = 1; i<=4; 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);
		idade[i]=id;
	}
	for(i=1;i<=4;i++)
	{
		if(sexo[i]=='F' || sexo[i]=='f')
		{
			if(id>idade[i])
			idade[i]=id;
		}
	}
[...]

 

Postado

Consegui fazer o programa me apresentar o total de homens e total de mulheres, mas não estou conseguindo pensar em um jeito dele me apresentar o homem mais velho e mais novo e a mulher mais velha e mais nova
Segue abaixo como está meu código até o momento com algumas alterações que eu fiz seguindo o que o amigo acima disse.

#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
 setlocale(LC_ALL, "Portuguese");
	int id,i,j,M=0,F=0,idFnova=0, idFvelha=0, idMnovo=0, idMvelho=0;
	char sexo;
	printf("Idade do mais velho e do mais novo\n");
	for(i = 1; i<=4; 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')
	 {
	 	idMnovo=id;
		 idMvelho=id;
		 M++;
	 }
	 else
	 {
	 	idFvelha=id;
		 idFnova=id;
	 	F++;
	 }
	}
	printf("\nTotal homens:% d\nTotal de mulheres: %d\n",M,F);
	for(i=id;i<=4;i++)
	{
		if(sexo=='F' || sexo=='f')
		{
			if(id<idFnova)
			idFnova=id;
			if(id>idFvelha)
			idFvelha=id;
		}
		else
		{
			if(id<idMnovo)
			idMnovo=id;
			if(id>idMvelho)
			idMvelho=id;
		}
	}
	printf("\nMulher mais nova: %d\nMulher mais velha: %d\n",idFnova,idFvelha);
	printf("\nHomem mais novo: %d\nHomem mais velho: %d",idMnovo,idMvelho);
}

O Programa agora só está me apresentando os ultimos valores adicionados para cada sexo como mostra a imagem abaixo:

 

Sem título.png

Postado

Apenas crie uma variável para cada valor que precisa controlar e durante o loop mantenha atualizado. Para comparar inicialmente use as constantes INT_MAX e INT_MIN que sempre são o menor e o maior número possível num int em C;
Só isso. Um único loop e mostra os resultados

Postado
19 minutos atrás, Rhendson Rérisson disse:

Então não preciso criar duas variáveis para apresentar a idade nova e a idade velha do sexo masculino e outras duas para o sexo feminino

 

1 hora atrás, arfneto disse:

Apenas crie uma variável para cada valor que precisa controlar

 

Pois é

 

4 valores quatro variáveis

Mas isso é importante? Declare as variáveis faça as contas e se concluir que não precisa de todas apague as inúteis

  • Obrigado 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!