Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda exercício (Comparação de resultados)


Diego RLS

Pergunta

Neste exercício pede que entre com o tempo de 5 voltas de 5 carros e no fim mostre o os três primeiros, fiz todo o código só falta agora mostrar quem são os três primeiros colocados, sendo que o vencedor é o que na soma das 5 voltas fizer em menos tempo, vou deixar uma imagem para entender melhor...

Não estou conseguindo mostrar quem venceu, fiz uma condição para caso a corrida termine com o Carro 1 em primeiro, Carro 2 em segundo e Carro 3 em terceiro, mas se eu fosse fazer uma condição para cada possibilidade de vitoria iria dar uns 60 "if" tem alguma forma melhor para fazer?

#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<locale.h>

main () {
	float carro_um[6],carro_dois[6],carro_tres[6],carro_quatro[6],carro_cinco[6];
	setlocale(LC_ALL, "Portuguese"); 
	printf("RESULTADO DA CORRIDA\n\n");

			printf("___CARRO 1___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_um[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_um[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_um[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_um[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_um[4]);
		
				printf("\n___CARRO 2___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_dois[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_dois[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_dois[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_dois[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_dois[4]);
		
			printf("\n___CARRO 3___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_tres[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_tres[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_tres[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_tres[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_tres[4]);
		
			printf("\n___CARRO 4___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_quatro[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_quatro[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_quatro[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_quatro[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_quatro[4]);
		
			printf("\n___CARRO 5___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_cinco[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_cinco[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_cinco[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_cinco[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_cinco[4]);

	carro_um[5]=carro_um[0]+carro_um[1]+carro_um[2]+carro_um[3]+carro_um[4];
	
	carro_dois[5]=carro_dois[0]+carro_dois[1]+carro_dois[2]+carro_dois[3]+carro_dois[4];
	
	carro_tres[5]=carro_tres[0]+carro_tres[1]+carro_tres[2]+carro_tres[3]+carro_tres[4];
	
	carro_quatro[5]=carro_quatro[0]+carro_quatro[1]+carro_quatro[2]+carro_quatro[3]+carro_quatro[4];
	
	carro_cinco[5]=carro_cinco[0]+carro_cinco[1]+carro_cinco[2]+carro_cinco[3]+carro_cinco[4];
}

post-645959-0-11168700-1443796480_thumb.png

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Ordene o vetor  de carros e mostre as 3 primeiras posições =/.

E para ler você não precisa de 6 tempos para cada carro, você só precisa de 1 tempo por cada carro. Tipo ir acumulando:

float carro[5] = {0}, aux;
int i, z;

for ( i = 0; i < 5; i++ ){
    for ( z = 0; z < 5; z++ ) {
        printf ( "Entre com o %dº tempo do carro numero%d", z + 1, i + 1 );//Entre com o 2º tempo do carro numero 1
        scanf ( "%f%*c", &aux );
        carro[i] += aux; //<-acumulador
    }
}

É bem mais facil que tudo isso:

			printf("___CARRO 1___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_um[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_um[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_um[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_um[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_um[4]);
		
				printf("\n___CARRO 2___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_dois[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_dois[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_dois[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_dois[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_dois[4]);
		
			printf("\n___CARRO 3___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_tres[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_tres[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_tres[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_tres[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_tres[4]);
		
			printf("\n___CARRO 4___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_quatro[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_quatro[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_quatro[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_quatro[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_quatro[4]);
		
			printf("\n___CARRO 5___\n\n");
		printf("Volta 1: ");
		scanf("%f", &carro_cinco[0]);
		printf("Volta 2: ");
		scanf("%f", &carro_cinco[1]);
		printf("Volta 3: ");
		scanf("%f", &carro_cinco[2]);
		printf("Volta 4: ");
		scanf("%f", &carro_cinco[3]);
		printf("Volta 5: ");
		scanf("%f", &carro_cinco[4]);
Editado por vangodp
Link para o comentário
Compartilhar em outros sites

  • 0

É que na verdade ainda não aprendi vetores mas o prof disse quem conseguisse fazer usando vetor não tem problema então fiz desse jeito porque foi como entendi vendo na internet, esse jeito que você mostrou é bem mais fácil.

Mas surgiu outra duvida como vai ser necessário somar o tempo de volta de carro e depois mostrar os 3 que tiveram o menor resultado da soma não seria necessário um vetor para cada carro par fazer a soma?

Link para o comentário
Compartilhar em outros sites

  • 0

no exercício cada carro tem uma serie de tempos relativos a cada volta, na foto 2. Vence o carro que tiver a soma de todas as voltas, e que essa soma der o numero menor, já que esse numero representa o tempos e gana o que fizer em menor tempo. Pois então... você não precisa armazenar todas as voltas, somente a soma. No seu exercício você esta criando 5 carros com 6 tempos, pois é melhor você criar 5 carros porem com 1 só valor cada que é a soma.

Sendo assim o código que te passei substitui seu código por completo, ordenar e mostrar as 3 primeiras posições substitui os "60 if" que você se referiu.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...