【发布时间】:2017-12-05 12:20:48
【问题描述】:
我继续收到此错误,我已多次查看我的代码,但看不到我在哪里走错了路。该程序应该让 5 个用户输入一个评分,然后它会找到最高和最低的输入,并将它们与平均值一起返回给用户。
提前致谢。
#include <iostream> // whatever this is
#include <iomanip>
using namespace std;
int getValue();
int findLowest();
int findHighest();
double findAverage();
int main(){ // main function
cout << setw(15)<<""<< "Product Review"; // displays this at the top
int ratingOne = getValue();
int ratingTwo = getValue();
int ratingThree = getValue();
int ratingFour = getValue();
int ratingFive = getValue();
int low = findLowest(ratingOne, ratingTwo, ratingThree, ratingFour, ratingFive);
int high = findHighest(ratingOne, ratingTwo, ratingThree, ratingFour, ratingFive);
double average = findAverage(ratingOne, ratingTwo, ratingThree, ratingFour, ratingFive);
cout << "\nThe highest rating received was: " << high;
cout << "\nThe lowest rating received was: " << low;
cout << std::fixed << std::setprecision(2) << "\nThe average rating received among 5 users was: " << average;
}
int getValue(){
int rating;
do {
cout << "\nOn a scale of 1 to 10, how would you rate our product? ";
cin >> rating;
if (rating < 1 || rating > 10) {cout << "\nYou have entered an invalid number. Please try again.";}
} while (rating < 1 || rating > 10);
return rating;
}
int findLowest(){
int low = 11;
if (ratingOne < low) { low = ratingOne }
if (ratingTwo < low) { low = ratingTwo }
if (ratingThree < low) { low = ratingThree }
if (ratingFour < low) { low = ratingFour }
if (ratingFive < low) { low = ratingFive }
return low;
}
int findHighest(){
int high = 0;
if (ratingOne > high) { high = ratingOne }
if (ratingTwo > high) { high = ratingTwo }
if (ratingThree > high) { high = ratingThree }
if (ratingFour > high) { high = ratingFour }
if (ratingFive > high) { high = ratingFive }
return high;
}
double findAverage(){
double average;
average = ratingOne + ratingTwo + ratingThree + ratingFour + ratingFive;
average = average / 5;
return average;
}
【问题讨论】:
-
findlowest()不带任何参数,你用 5 个参数调用它。findHighest和findAverage也是如此。 -
请edit您的问题提供minimal reproducible example。
-
将
ratingOne、ratingTwo、ratingThree、ratingFour和ratingOne设为全局并调用findLowest、findHighest和findAverage这三个函数,不带任何参数main。或者更改函数签名以接受五个int。 -
@Barmar 我不是 100% 熟悉这些术语。我认为调用该函数只会利用存储在 () 中的变量。我们不允许使用全局变量。
-
@jm21609 不,这不是函数调用的工作方式。您需要重新阅读教科书或教程中关于调用函数的部分。