Pulse 0 Denunciar post Postado Abril 8, 2015 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
_Isis_ 202 Denunciar post Postado Abril 9, 2015 #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