Ir ao conteúdo

C Retirar o Maior e Menor valor de um laço de repetição


Ir à solução Resolvido por herbertbahia,

Posts recomendados

Postado

Olá estou aprendendo C e estou com uma duvida.

Estou criando um código referente á um campeonato brasileiro em que preciso retirar o campeão e o último colocado;


 

#include <stdio.h>
#include <math.h>

int main (void){
	
	int time, i, vit, Pvit, emp, Pemp, der, Pder, soma, maior, menor, maior_ponto, menor_ponto, time_campeao, time_perdedor;
	float aproveitamento=0;
	
	printf("Informe o nome do time, vitorias, empates e derrotas referente a 38 rodadas do brasileirao:\n");
	
	do{
		
		printf("\nInforme o nome do time:");
		scanf("\n%d",&time);						
		printf("Num de vitorias:");
		scanf("\n%d",&vit);
		printf("Num de empates:");
		scanf("\n%d",&emp);
		printf("Num de derrotas:");
		scanf("\n%d",&der);	
		
		soma = maior;
		soma = menor;	
		
		Pvit = vit * 3;
		Pemp = emp * 1;
		Pder = der * 0;
		soma = Pvit + Pemp + Pder;
		aproveitamento = (soma / (double)114) * 100;
		
		
		printf("\nPontuacao: %d\n", soma);
		printf("\nAproveitamento: %.2f""%%\n", aproveitamento);
		
		if( soma > maior){
			maior = soma;
			time_campeao = time;
		}
	    if( soma < menor){
			menor = soma;
		    time_perdedor = time; 	
	    }
		i++;		
		
	}while (i<3);	
	
	
				
	
	printf("\nCampeao: %d Pontuacao: %d\n",time_campeao,maior);
	printf("Ultimo Colocado: %d Pontuacao: %d",time_perdedor,menor);	
}

 

Mas não tenho ideia de como armazenar o maior e o menor valor em outra variável junto com o nome do time...

Alguém me dá uma luz??? 

Postado

Cara, ao invés de colocar a imagem, copie e cole o código no post, fica mais fácil de te ajudar.

Primeiro, você ta comparando soma com maior, mas o maior não tem valor nenhum, você nem sequer iniciou ele, então você tem que colocar o maior como o valor que você quer comparar entre os times pra ver qual é o melhor. Ex:

	Pvit = vit * 3;
	Pemp = emp * 1;
	Pder = der * 0;
	soma = Pvit + Pemp + Pder;
	maior = soma;

Daí você compara os outros com esse maior. E outra coisa, no final você colocou soma = maior_ponto e time = time_campeao, sendo que as variáveis time_campeao e maior_ponto não tem valor nenhum, então tem que ser ao contrário: maior_ponto = soma e time_campeao = time, para atribuir o valor de soma a maior_ponto e de time a time_campeao, e assim imprimir o que você quer no final. Espero ter ajudado.

  • Amei 1
  • Solução
Postado
#include <stdio.h>
#include <string.h>
#include<locale.h>

int main (){
	setlocale(LC_ALL,"");
	char time[20],timecampeao[20],timeperdedor[20];
	int i, vit,emp,der,pontos,menor=1000,maior;
	do{
		printf("\nInforme o nome do time %d sem espaço: ",i+1);
		scanf("\n%s",time);						
		printf("Num de vitorias:");
		scanf("\n%d",&vit);
		pontos=vit*3;
		printf("Num de empates:");
		scanf("\n%d",&emp);
		pontos=pontos+emp;
		printf("Num de derrotas:");
		scanf("\n%d",&der);	
		printf("\nPontuacao: %d\n", pontos);
		if(pontos>maior){
			maior=pontos;
		strcpy(timecampeao,time);
		}
		if(pontos<menor){
			menor=pontos;
		strcpy(timeperdedor,time);
		}
		i+=1;
	}while (i<3);	
	
	printf("\nCampeao: %s Pontuacao: %d\n",timecampeao,maior);
	printf("Ultimo Colocado: %s Pontuacao: %d",timeperdedor,menor);	
}

 

  • Amei 1
Postado

esse  não funciona no codeblocks ta mostrando assim

Informe o nome do time 4194433 sem espaço:

e depois que ler o primeiro dado já finaliza e mostra o resultado incompleto

  • Curtir 1
Postado

@Mirabell No meu funcionou amigo, fiz algumas alterações no código para ficar como eu queria, mas sobre a pergunta principal de como retirar os valores do código, consegui entender direitinho. Eu estava perdido de como fazer...

Obrigado!

ps: Quem fecha o tópico?

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