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.