Ir ao conteúdo

Vetor em uma função


Danilo Lopes

Posts recomendados

Postado
Pessoa. estou tentando usar um vetor em uma função, alguém poderia me dizer onde estou errando.

 

/*2) Dado um vetor, implemente uma função para retornar o

maior elemento do vetor */

 

# include <iostream>

using namespace std;

 

int maiorr (int vet[]);

 

int main (){

const int max = 10;

int maior = 0;

int menor = 0;

int vet[max];

 

cout << "Insira os dados no vetor: ";

for (int i = 0 ; i < max ; i++){

cin >> vet;

}

 

maior = maiorr(int vet[]);

cout << "O maior elemento do vetor e: " << maior;

 

 

}

 

int maiorr (int vet[]){

int maior = 0;

for (int i = 0 ; i < max ; i++){

if (vet >= maior){

maior = vet;

}

}

 

return maior;

}

Postado

No código abaixo, está declarando o escopo da função "maiorr()", ao invés da chamada.

maior = maiorr(int vet[]);Seria:maior = maiorr(vet);
Dentro da função "maiorr()", está usando a variável "max", que é declarada apenas dentro da função "main()":

for (int i = 0 ; i < max ; i++)
Uma forma de resolver, seria receber o valor de "max" por parâmetro na função:

int maiorr (int vet[], int max)
Arrumando isso, o programa funcionará corretamente.

Saída:

Insira os dados no vetor: 1234567890O maior elemento do vetor e: 9Process returned 0 (0x0) execution time : 16.567 sPress any key to continue.
Postado

1 - Na sua constante você usou o nome "max", mas esse nome é reservado pra outra função no c++. Pelo menos aqui no meu compilador deu problema. Use "MAX" pra não dar problema.

2 - No começo do programa você declarou a função "maiorr", que recebe um vetor do tipo int, mas dentro da função main você não precisa declarar ele novamente.

3 - Se a sua função main é do tipo int, ela precisa de um "return" no final. As únicas funções onde você pode omitir o return são as do tipo void.

4 - Além disso, dentro da função maiorr você tá fazendo uso da constante "max", mas o escopo dela é apenas dentro da função main. Se quiser que outras funções sejam capazes de enxergar ela também, precisa declarar ela com um escopo global (ou seja, fora da função main).

Código corrigido:

# include <iostream>using namespace std;int maiorr (int vet[]);const int MAX = 10; // --- 1 e 4 ---int main () {	int maior = 0;	int menor = 0;	int vet[MAX];	cout << "Insira os dados no vetor: ";	for (int i = 0 ; i < MAX ; i++){		cin >> vet[i];	}	maior = maiorr(vet); // --- 2 ---	cout << "O maior elemento do vetor e: " << maior;	return 0; // --- 3 ---}int maiorr (int vet[]) {	int maior = 0;	for (int i = 0 ; i < MAX ; i++){		if (vet[i] >= maior){			maior = vet[i];		}	}	return maior;}

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!