Com eu faço para verificar o maior valor em um vetor de n posições, usando looping?
- Home
- >
- Fórum
- >
- Profissional
- >
- Programação, Sc...
- >
- Verificar maior vlr em ve...
Faz um for, vai comparando até o índice chegar ao último valor do vetor. Dentro do for coloque um if que compara o valor atual da array com o maior valor (deve-se criar uma variável antes do loop para armazenar esse valor ou, se interessar, pode armazenar o índice do maior valor). Se o valor atual for maior que a variável, iguale-a ao valor atual.
Escrevi toda a lógica aí, tente passar para C e se tiver alguma dúvida, poste o código para que possamos ajudar.
Core 2 Quad Q6600 | Asus P5Q Deluxe | 2GB RAM | XFX 9800GTX+ | Unicomp SpaceSaver
Gentoo Linux / Windows 7
MacBook Pro 13" (2010) - Core 2 Duo 2.4 GHz | 4GB RAM | GeForce 320M
Darwin/x86 (Mac OS X 10.7)
iPhone 4 - Apple A4 (Cortex-A8 1GHz) | 512MB RAM | 16GB SSD
Darwin/ARM (iOS 5)
Etinin disse: Faz um for, vai comparando até o índice chegar ao último valor do vetor. Dentro do for coloque um if que compara o valor atual da array com o maior valor (deve-se criar uma variável antes do loop para armazenar esse valor ou, se interessar, pode armazenar o índice do maior valor). Se o valor atual for maior que a variável, iguale-a ao valor atual.
Escrevi toda a lógica aí, tente passar para C e se tiver alguma dúvida, poste o código para que possamos ajudar.
bem pensado!!!!
estava fazendo assim, porém acabei verificando com a primeira pos. com a próxima pos.
segue o código para quem precisar...vlw
for(i=0;i
{
if(vlr < *(pvet+i))
{
vlr=*(pvet+i);
}
}
lembrando que vlr=1;
Dê uma olhada no código abaixo e poste suas dúvidas (se tiver é claro), assim eu também aprendo.
Fique com Deus
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
float numero_max; // elemento máximo do vetor
float *vetor; // vetor que será alocado dinâmicamente
int i; //contador;
int n; // número de elementos do vetor
// Apenas imprime o nome do programa
printf("O nome do programa é %s\n\n",argv[0]);
// Solicita ao usuário o número de elementos do vetor
printf("Entre com o número de elementos do vetor "
scanf("%i",&n);
system("clear || cls"
printf("\nVocê escolheu um vetor com %i elementos \n",n);
// alocando o vetor dinâmicamente
vetor = (float*) malloc(n*sizeof(float));
// populando o vetor
for (i = 0;i < n;++i)
{
printf("Entre com o elemento %i do vetor ",i + 1);
scanf("%f",&vetor[i]);
}
// Busca o elemento máximo
numero_max = vetor[0];
for (i = 0;i < n;++i)
if (vetor[i] > numero_max)
numero_max = vetor[i];
//Imprime os elementos do vetor e o máximo
printf("\n\nElementos do vetor : "
for (i = 0;i < n;++i)
printf("%.2f ",vetor[i]);
printf("\nO elemento máximo é o %.2f\n",numero_max);
// Liberando a memória alocada dinâmicamente
free(vetor);
// encerra o programa de forma correta
return(0);
}
jose_silva_neto disse: Dê uma olhada no código abaixo e poste suas dúvidas (se tiver é claro), assim eu também aprendo.
Sempre lembrando q vc deve inicializar numero_max com um valor bem baixo, senão seu programa pode ter resultado indefinido.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
jose_silva_neto disse: Por favor, poderia explicar de forma mais explícita ?
Depois é q eu vi q vc inicializa a variável com a linha
numero_max = vetor[0];
Isso já resolve o problema, mas caso ela não existisse, o compilador poderia inicializar a variável com qq valor aleatório, por exemplo, numero_max=99999999.
Se todos os valores do seu vetor forem menores do q isso, o maior valor nunca será encontrado.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
tpcvasco disse: Depois é q eu vi q vc inicializa a variável com a linha
numero_max = vetor[0];
Isso já resolve o problema, mas caso ela não existisse, o compilador poderia inicializar a variável com qq valor aleatório, por exemplo, numero_max=99999999.
Se todos os valores do seu vetor forem menores do q isso, o maior valor nunca será encontrado.
Entendi, muito obrigado. Eu pedi para você explicar de forma mais explícita porque assim qualquer um de nós (iniciante) entende.
Fique com Deus