1
변수 days
은 함수 전체에서 이어지지 않습니다. days
이 highest
및 lowest
함수에서 초기화되지 않았으며 수정 방법을 모른다는 오류가 발생합니다. 지금까지 제가 가지고있는 코드는 다음과 같습니다.함수에서 변수 초기화
#include <iostream>
using namespace std;
float temptotal = 0;
float averagetemp = 0;
float temperatures[50];
float average();
void highest();
void lowest();
int main()
{
average();
highest();
lowest();
}
float average()
{
float days = 0;
cout << "Enter the number of days: ";
cin >> days;
if (days > 50)
{
cout << "You may only enter temperatures for 50 days." << endl;
return 0;
}
for (int i = 1; i <= days; i++)
{
cout << "Enter the temperature for day number " << i << ": ";
cin >> temperatures[i];
temptotal += temperatures[i];
return temperatures[i];
}
averagetemp = temptotal/days;
cout << "The average temperature is: " << averagetemp << endl;
}
void highest()
{
float max = -9999999999999;
for (int i = 0; i < days; i++)
{
if (temperatures[i] > max)
max = temperatures[i];
cout << "The highest temperature is: " << max << endl;
}
}
void lowest()
{
float min = 9999999999999;
for (int i = 0; i < days; i++)
{
if (temperatures[i] < min)
min = temperatures[i];
cout << "The lowest temperature is: " << min << endl;
}
}
범위는 글로벌 없습니다. – chris
'days'를 매개 변수로 전달하십시오. – 0x499602D2
문제 설명이 비현실적입니다. "초기화되지 않았다"는 오류 메시지는 표시되지 않습니다. 신고되지 않았 음, 즉 완전히 알려지지 않았 음을 알리는 오류가 표시됩니다. 한 함수에서 로컬로 선언 된 변수는 다른 함수에서 표시되거나 액세스 가능하지 않아야합니다. 따라서 코드는 작성된대로 작동 할 기회가 없습니다. 다시 디자인해야합니다. 하나의 함수에서 다른 함수로 그 변수 (그 값)를 수동으로 전달하거나 전역으로 만들어야합니다. – AnT