struct WeatherStation {
string Name;
double Temperature;
};
void Initialize(WeatherStation[]);
void HL(WeatherStation List[]);
int main()
{
string Command;
WeatherStation Stations[5];
//some commands
}
void Initialize(WeatherStation StationList[])
{
StationList[0].Name = "A";
StationList[0].Temperature = 0.0;
StationList[1].Name = "B";
StationList[1].Temperature = 0.0;
StationList[2].Name = "C";
StationList[2].Temperature = 0.0;
StationList[3].Name = "D";
StationList[3].Temperature = 0.0;
StationList[4].Name = "E";
StationList[4].Temperature = 0.0;
}
void HL(WeatherStation List[])
{
int K;
int Low = List[0];
int High = List[0];
for(K = 0 ; K < 5 ; K++)
if(List[K] < Low)
Low = List[K];
for(K=0 ; K < 5 ; K++)
if(List[K] > High)
High = List[K];
cout << "Lowest Temperature: " <<Low << endl;
cout << "Highest Temperature: "<< High << endl;
}
最後一部分讓我絆倒。計算陣列的高值和低值
chief.cpp: In function ‘void HL(WeatherStation*)’:
chief.cpp:124: error: cannot convert ‘WeatherStation’ to ‘int’ in initialization
chief.cpp:125: error: cannot convert ‘WeatherStation’ to ‘int’ in initialization
chief.cpp:128: error: no match for ‘operator<’ in ‘*(List + ((unsigned int)(((unsigned int)K) * 12u))) < Low’
chief.cpp:129: error: cannot convert ‘WeatherStation’ to ‘int’ in assignment
chief.cpp:132: error: no match for ‘operator>’ in ‘*(List + ((unsigned int)(((unsigned int)K) * 12u))) > High’
chief.cpp:133: error: cannot convert ‘WeatherStation’ to ‘int’ in assignment
溫度是雙重的,所以雙低=等等。 – 2010-07-19 19:29:59
必須使用* epsilon *因子,而不是與雙等同。雙打很少完全相同。 – 2010-07-19 19:32:13
可能'WeatherStation :: Temperature'應該是另一端的'int'。 – 2010-07-19 19:34:23