Ir ao conteúdo
  • Cadastre-se
Carlos Eduardo Santana San

C Declaração de matrizes e vetores em funções

Recommended Posts

Olá! Eu curso engenharia e fiquei empacado na resolução de um exercício! O exercício é o seguinte:

 

Faça um programa em C que identifica os corredores classificados para os Jogos Olímpicos. O programa deve
receber o número n de corredores participantes no intervalo de [2, 20] - o programa só deve continuar se for
inserido um valor válido - e deve conter uma variável real limite informada pelo usuário que corresponde ao
tempo máximo permitido para conseguir a classificação para as olimpíadas.
O nome de cada atleta deve ser lido do teclado e ser armazenado num vetor de strings. Cada atleta terá direito
a três tomadas de tempo, na qual cada linha identifica um atleta e cada coluna seu respectivo tempo.

 

O programa deve
(a) Receber na main o número de atletas participantes e o tempo limite escolhido pela comissão. O
programa só deve continuar se for inserido um valor válido
(b) Conter a função void preencherNomes(char nomes[20][20], int m), onde os nomes de cada atleta
devem ser salvos pelo usuário.
(c) Conter a função void preencherTempos(float tempos[20][3], int m), onde os tempos de cada atleta
devem ser salvos pelo usuário.
(d) A função float calculaTempo(float tempos[3]) que retorna o menor tempo medido de um atleta.
(e) A função void imprimir(char nomes[20][20], float tempos [20][3], int m, float limite) que deve
imprimir o nome e o menor tempo de cada um dos atletas classificados. Um atleta só será classificado
se seu menor tempo for menor ou igual ao tempo limite estabelecido pela comissão. Caso não existam
atletas classificados, o programa deverá imprimir: “Não há nenhum atleta classificado”.

 

Então, minha dúvida é a seguinte: na letra d ele pede a seguinte função:

 

calculaTempo(float tempos[3])

 

E no gabarito, diz-se: 

 

float calculaTempo(float tempos[3]) {

    int i;

    float menor = tempos[0];

    for(i = 0; i < 3; i++) {

        if (tempos < menor) {

            menor = tempos;

        }

    }

    return menor;

}

 

Porém eu não consigo entender a lógica por trás dele. Por que ele pede para usar um Vetor de 3 dimensões, sendo que no programa temos que usar apenas matrizes (vetores multidimensionais)?

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que você só vai passar 1 linha da matriz para a função, ao invés da matriz inteira.

 

Ou seja quando chamar essa função de um escopo que tem a matriz tempos[20][3], vai passar apenas 1 linha dela para a função, por exemplo assim: calculaTempo(tempos[0]), onde apenas a linha 0 da matriz (que contém 3 posições/colunas) será passado para a função.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×