Jump to content
Fórum Script Brasil
  • 0

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


Diego RLS
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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]);
Edited by vangodp
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...