Strona 1 z 1
[C++] program wyznaczający największą liczbę-błąd kompilacji
: 8 lip 2011, o 12:26
autor: diego_maradona
Kod: Zaznacz cały
#include "stdafx.h"
#include <iostream>
using namespace std;
double larger( double , double );
int limit,i;
double max, num;
int main()
{
cout<<"Program finds the largest number"<<endl
<<"How many numbers would you like to enter?"<<endl;
cin>>limit;
cout<<"Enter those numbers"<<endl;
cin>>max;
for(i=1; limit >i ;i++)
{
cin>>num;
max=larger(num,max);
}
cout<<max;
cout<<endl;
system("PAUSE");
}
double larger( double x, double y)
{
if (x>=y)
return x;
return y;
}
Wychodzi błąd kompilacji, który nie za bardzo rozumiem
1>largest_number.cpp(20): error C2872: 'max' : ambiguous symbol
1> could be 'largest_number.cpp(11) : double max'
1> or 'max'
[C++] program wyznaczający największą liczbę-błąd kompilacji
: 8 lip 2011, o 12:47
autor: PMichalak
w C++ jest zdefiniowana funkcja max(T a, T b), która zwraca maksimum i kompilator nie wie czy wywołujesz tę funkcję, czy odwołujesz się do swojej zmeinnej, którą nazwałeś tak samo.
[C++] program wyznaczający największą liczbę-błąd kompilacji
: 8 lip 2011, o 13:00
autor: diego_maradona
o_O w życiu bym na to nie wpadł, dzięki Zmieniłem nazwę z max na maximum i teraz wszystko gra i buczy. Rozumiem, że ta nieszczęsna funkcja max jest zadeklarowana w nagłówku #include "stdafx.h"?
[C++] program wyznaczający największą liczbę-błąd kompilacji
: 8 lip 2011, o 14:39
autor: Afish
Nie. stdafx jest nagłówkiem przyspieszającym kompilację. max siedzi w algorithm, ale najprawdopodobniej stdafx dołącza ten nagłówek, co powoduje błąd.