Jump to content

[Resolvido] A melhor volta


VictorGustavo
 Share

Recommended Posts

#include<stdio.h>
int main(){
   int menor=999999,voltas,tempo,soma=0,i,contador=0;
   scanf("%i ",&voltas);
   for(i=0; i < voltas ;i++){
       scanf("%i",&tempo);
       soma += tempo;
       if(tempo < menor){ //
           menor = tempo; // Se tempo < tempo será armazenado na variável menor
           contador++;
       }
   }
   printf("\nO tempo da melhor volta:%i \nA volta em que o melhor tempo ocorreu:%i \nO tempo medio das N voltas:%i",menor,contador,soma/voltas);

   return 0;
}

Estou com um pequeno problema, ao armazenar a menor volta. Visto que tenho que declamar a variável menor = 999999, alguém sabe outra saída para resolver esse problema?

Link to comment
Share on other sites

Boas,

não vejo problema em teres definido o menor com esse valor. Poderá haver outras formas, mas essa não está assim tão mal (dependendo do tempo normal das voltas).

No entanto não vejo a razão de incrementares a variavel contador quando o tempo é inferior ao menor guardado. Qual a utilizade?

Não queres antes ter a variavel com o nome de menor_volta e atribuires ao i nesse bloco? Assim ficas com o numero da volta de onde vem o menor tempo

  • Vote 1
Link to comment
Share on other sites

#include<stdio.h>

// macro para limpar o buffer de leitura
#define CLEAR_INPUT while (getchar() != '\n')

int main() {
 // cariaveis usadas na função (c89 compilant)
 int voltas = 0,
     i = 0,
     tempo = 0
     soma = 0,
     menor_tempo = 0,
     menor_volta = 0;

 // pedir o numero de voltas a contabilizar
 printf("Numero de voltas : ");
 fflush(stdout);
 if (scanf("%i", &voltas) != 1) {
   printf("Valor invalido de voltas ...\n");
   exit(-1);
 }
 CLEAR_INPUT;

 // verificar se existiram voltas a contabilizar
 if (voltas > 0) {
   do {
     // pedir o tempo da volta iterada
     printf("Tempo da volta %d : ", (i + 1));
     fflush(stdout);
     if (scanf("%i", &tempo) != 1)
       printf("Valor invalido para o tempo da volta %d ...\n", i);
       exit(-1);
     }

     // somar o tempo para o calculo da media
     soma += tempo;

     // verificar se ainda não foi guardado o menor tempo ou se esse tempo
     // guardado é maior que o contabilizado na iteração
     if (i == 0 || menor_tempo > tempo) {
       menor_tempo = tempo;
       menor_volta = volta;
     }

     // incremento da iteração
     ++i;
   } while (i != voltas);

   // apresentar os resultados
   printf("\n");
   printf("O tempo da melhor volta: %i\n", menor_tempo);
   printf("A volta em que o melhor tempo ocorreu: %i\n", menor_volta);
   printf("O tempo medio das %i voltas: %i", voltas, soma / voltas);
 } else
   printf("Nao foi efectuadas nenhuma volta\n");

 return 0;
}
  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.