Ir ao conteúdo
  • Cadastre-se

Ajuda - Maior e o Menor elemento do vetor.


Holocausto

Posts recomendados

Olá pessoal preciso de uma ajuda para achar um erro, o código abaixo teria que mostrar o menor e o maior elemento do vetor no entanto o menor valor esta sempre com erro de execução, já revisei o código inteiro e não consegui achar o erro. :help:

#include <stdio.h>
#include <stdlib.h>
#define TAM 10

void mm(int vet[], int *min, int *max)
{
int menor = vet[0];
int maior = vet[0];

for(int i=0; i<TAM; i++)
{
if(vet[i] < menor)
{
menor = vet[i];
*min = menor;
}

if(vet[i] > maior)
{
maior = vet[i];
*max = maior;
}
}
}


int main()
{
int *vet=NULL;
int min, max;
int i;

vet = (int*) malloc (TAM* sizeof(int));
printf("Elementos do vetor: \n");

for(i=0; i<TAM; i++)
vet[i]=i+29;
printf("\n");

for(i=0; i<TAM; i++)
printf("Vetor %d = %d \n",i, vet[i]);
free(vet);

mm(vet, &min, &max);
printf("\n");
printf("Menor elemento: %d\n",min);
printf("Maior elemento: %d\n",max);

return 0;
}

Link para o comentário
Compartilhar em outros sites

Um erro grave é que, você está desalocando o vetor, dando um 'free()' nele depois do segundo 'for' na rotina princial.

Modifiquei a sua função 'mm()', ficando assim:


void mm(int vet[], int *mim, int *max)
{
int i;

*mim = vet[0];
*max = vet[0];

for ( i = 0; i < TAM; i++ )
{
if(vet[i] < *mim)
*mim = vet[i];

if(vet[i] > *max)
*max = vet[i];
}
}

Veja se funciona dessa maneira.

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!