Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pulse

Vetor com condições

Recommended Posts


Faça um programa que leia uma sequência de 10 números, armazene-os em um vetor e
ao final apresente o maior número e a posição em que ele foi armazenado.
#include <stdio.h>

int main ()
{
    float n[10], n2[10];
    int i;

    for (i=0; i<=9; i++)
    {
        printf("Digite um numero");
        scanf("%f", &n[i]);
        n2[i] = n[i];
    }

    for (i=0; i<=9; i++)
    {
        if(n[i] >= n[0] && n[i] >= n[1] && n[i] >= n[2] && n[i] >= n[3] && n[i] >= n[4] && n[i] >= n[5] && n[i] >= n[6] && n[i] >= n[7] && n[i] >= n[8] && n[i] >= n[9])
        {
            printf("%f %d", n[i], i);
        }
    }
}
Eu consegui resolver o problema dessa maneira mas achei um pouco "feio" a grande quantidade de condições. Há alguma maneira de fazer de forma mais simplificada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>
int main(void) {
  int n[10];
  int pos_maximo;
  int i;
 
  for(i=0; i<10; i++) {
     scanf("%d", &n[i]);
  }
 
  pos_maximo=0;
  for(i=1; i<10; i++) {
    if (n[i] > n[pos_maximo]) {
        pos_maximo=i;
    }
  }
 
  printf("O maior número (%d) está na posição %d.\n", n[pos_maximo], pos_maximo);
  return 0;
}

Matemática simples aqui. Assume-se que o elemento da primeira posição é o máximo. Se encontrarmos um elemento maior que o máximo, então a escolha anterior é falsa e atualizamos a posição que indica o novo máximo.

Não sei porque você usou 2 vetores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.