Jump to content
Fórum Script Brasil
  • 0

Duvida Simples em C++


G.Meneses

Question

Sou iniciante em programação em C++, ai fui fazer uns testes simples, é um programa que diz qual o maior e o menor numero.

Estou usando o Visual Studio C++.

O erro diz: ''Error LNK2019 An undefined external symbol was found in function...''

Não consegui encontrar o erro, segue o código

#include<iostream>
using namespace std;

int maior (int valor);
int menor (int val);

int main()
{
    int v[5], i, ma=0, me, aux;

    cout << "********* Programa que diz o maior e menor numero **********\n";
    me = 99999;
    for (i=1;i<=5;i++)
    {
       cout << "Valor: " << i;
       cin >> aux;
       v[i] = aux;
    }

    ma = maior (v[5]);
    me = menor (v[5]);

    cout << "\nMaior valor: " << ma << endl;
    cout << "\nMenor valor: " << me << endl;

    system("Pause");
    return 0;
}
    int maior (int v[5])
    {
        int i, ma=0, me=99999;
       for(i=1;i<=5;i++)
       {
           if(v[i] > ma){
                  ma=v[i];
           }
       }
           return v[5];
       }

       int menor (int v[5])
       {
           int i, ma=0, me=99999;
           for(i=1;i<=5;i++)
           {
               if(v[i] < me){
                        me=v[i];
           }
           }
           return v[1];
       }

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Aqui está um erro:

int maior (int valor);
int menor (int val);

Esta funcão deve receber um ponteiro para inteiro, ou então um vetor(o que é a mesma coisa)

Assim:

int maior (int valor[]);

int menor (int val[]);

[\code]

e o mesmo deve se repetir na funcao propriamente dita...o cabecalho da funcao deve ser igual ao prototipo.

---

[code]

ma = maior (v[5]);

me = menor (v[5]);

[\code]

Então aqui segue se 2 coisas incoerentes se voce quer passar o vetor todo voce deve passar somente o v e não v[5] além do mais v[5] não existe pois o vetor vai de 0..4.. Ok?

voce deve retornar o ma no maior e o me no menor... e não uma posicao do vetor... Ok?

Por fim está funcao sua também está um pouco incoerente.. voce não pode chamar 0 de menor e 99999 de maior.. pois sempre existe um numero menor ou maior que estes dois que podem estar no vetor

O que deve se fazer é iniciar o me e o ma com a primeira posicao do vetor, e veficicar se existe um maior que este dentro do vetor(na func maior) e um menor que este dentro do vetor (na func menor)

Entendeu?

Abraco

Uma dica boa pra encontrar erros no código é utilizar o modo 'debug'

Abraco

Ahhh.. no for que varre o vetor deve ser variado de 0 até 4 e não de 1 até 5....

Link to comment
Share on other sites

  • 0

Muito obrigado, fiz:

int maior (int valor[]);
int menor (int val[]);
---
ma = maior (v);
    me = menor (v);

E retornei o ma e me como dito por você na funções.

Só mais uma duvida:

Quando eu faço o Debug do programa após pressionar a tecla para sair do programa aparece a seguinte mensagem:

"Run-Time Check Failure #2 - Stack around the variable 'v' was corrupted."

E, em outro programa de teste que fiz apareceu essa mesma mensagem do Visual Studio.

Essa mensagem de falha influencia em algo?

Link to comment
Share on other sites

  • 0

Olha... eu não utilizo o Visual Studio C++, consequentemente eu não utilizo o compilador da microsoft(acho que é o dev c++, não tenho certeza) eu uso o gcc... nunca ocorreu este erro no debuguer dele não.. mas como ocorre no final da execucao acredito que não tenha nenhum problema não.. =/

Abraco

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...