Can';无法使函数正常工作。不应使用的额外数字';不能展示 我对C++和编程都是新的,所以这对我来说很困难,但我真的很想学习。我无法正确显示letterGrade函数。我给了我字母等级,但也在字母等级后加了一堆数字。谁能告诉我发生了什么事,我做错了什么?此外,我应该使用一个函数来查找平均值,但我只能通过在“for”循环中定义一个变量sAverage来将数组显示为一个表来实现。我也为此创建了一个函数,但它没有给我正确的答案。这是我的密码 #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; int letterGrade(int average) { if (average > 89) cout << "A"; else if (average > 79 && average < 90) cout << "B"; else if (average > 69 && average < 80) cout << "C"; else if (average > 59 && average < 70) cout << "D"; else if (average >= 0 && average < 60) cout << "F"; } void getInfo() { const int info = 2; string last[info]; string first[info]; int ID[info]; int score1[info]; int score2[info]; int score3[info]; for (int count = 0; count < info; count++) { cout << "last name\n"; cin >> last[count]; cout << "first name\n"; cin >> first[count]; cout << "enter ID\n"; cin >> ID[count]; cout << "enter test 1\n"; cin >> score1[count]; cout << "enter test 2\n"; cin >> score2[count]; cout << "enter test 3\n"; cin >> score3[count]; } cout << endl; cout << "Last Name\tFirst Name\tID\tTest 1\tTest 2\tTest 3\tAverage\t Grade\n"; cout << "__________________________________________________________________\n"; for (int count = 0; count < info; count++) { int sAverage = ((score1[count]+score2[count]+score3[count])/3); cout << setw(10) << last[count] << setw(10) << first[count] << setw(10) << ID[count] << setw(10) << score1[count] << setw(10) << score2[count] << setw(10) << score3[count] << setw(10) << sAverage << setw(10) << letterGrade(sAverage); cout << endl; } } int main(int argc, char *argv[]) { cout << "Enter Student Info\n"; getInfo(); system("PAUSE"); return EXIT_SUCCESS; }
我这样称呼它Can';无法使函数正常工作。不应使用的额外数字';不能展示 我对C++和编程都是新的,所以这对我来说很困难,但我真的很想学习。我无法正确显示letterGrade函数。我给了我字母等级,但也在字母等级后加了一堆数字。谁能告诉我发生了什么事,我做错了什么?此外,我应该使用一个函数来查找平均值,但我只能通过在“for”循环中定义一个变量sAverage来将数组显示为一个表来实现。我也为此创建了一个函数,但它没有给我正确的答案。这是我的密码 #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; int letterGrade(int average) { if (average > 89) cout << "A"; else if (average > 79 && average < 90) cout << "B"; else if (average > 69 && average < 80) cout << "C"; else if (average > 59 && average < 70) cout << "D"; else if (average >= 0 && average < 60) cout << "F"; } void getInfo() { const int info = 2; string last[info]; string first[info]; int ID[info]; int score1[info]; int score2[info]; int score3[info]; for (int count = 0; count < info; count++) { cout << "last name\n"; cin >> last[count]; cout << "first name\n"; cin >> first[count]; cout << "enter ID\n"; cin >> ID[count]; cout << "enter test 1\n"; cin >> score1[count]; cout << "enter test 2\n"; cin >> score2[count]; cout << "enter test 3\n"; cin >> score3[count]; } cout << endl; cout << "Last Name\tFirst Name\tID\tTest 1\tTest 2\tTest 3\tAverage\t Grade\n"; cout << "__________________________________________________________________\n"; for (int count = 0; count < info; count++) { int sAverage = ((score1[count]+score2[count]+score3[count])/3); cout << setw(10) << last[count] << setw(10) << first[count] << setw(10) << ID[count] << setw(10) << score1[count] << setw(10) << score2[count] << setw(10) << score3[count] << setw(10) << sAverage << setw(10) << letterGrade(sAverage); cout << endl; } } int main(int argc, char *argv[]) { cout << "Enter Student Info\n"; getInfo(); system("PAUSE"); return EXIT_SUCCESS; },c++,C++,我这样称呼它 cout << getAverage(score1[info],score2[info],score3[info]) 调用函数时,cout: cout << getAverage(score1[info],score2[info],score3[info]) int getAverage(score1, score2, score3) { int average; average = ((score1 + score2 + score3)
cout << getAverage(score1[info],score2[info],score3[info])
调用函数时,
cout:
cout << getAverage(score1[info],score2[info],score3[info])
int getAverage(score1, score2, score3)
{
int average;
average = ((score1 + score2 + score3) / 3);
return average;
}
您没有指定SCORX变量的类型,隐式int规则在C++中无效。
编辑:
另一件事:当你计算平均值时,你必须记住,将一个整数除以一个整数总是得到一个整数,因此如果你想得到更精确的答案,例如,对于2.66 2 3 3,你必须使用一个浮点。也许你误读了你的输出?即使没有为参数指定类型,getAverage
函数也应该能正常工作(它们默认为int
)
看起来您的问题不同:您的函数letterGrade
没有return
语句,因此它返回随机垃圾。您的编译器实际上应该警告您这一点。这个垃圾被解释为一个数字(因为你说函数返回的是int
),并以这种方式格式化
您可能想要的是:
string letterGrade(int average)
{
if (average > 89)
return "A";
else if (average > 79 && average < 90)
return "B";
else if (average > 69 && average < 80)
return "C";
else if (average > 59 && average < 70)
return "D";
else if (average >= 0 && average < 60)
return "F";
else
return "-"; // negative value was passed!
}
字符串字母等级(整数平均值)
{
如果(平均值>89)
返回“A”;
否则如果(平均值>79&&平均值<90)
返回“B”;
否则如果(平均值>69和平均值<80)
返回“C”;
否则如果(平均值>59和平均值<70)
返回“D”;
否则如果(平均值>=0&&average<60)
返回“F”;
其他的
return“-”;//传递了负值!
}
你在这里发布代码时使用,我建议你合并多个空行,这样我们就不必向下翻页太多(我认为代码的可读性要高得多)。很好的一点是,我错过了他在获取数组值时使用信息而不是计数。我已经解决了这个问题,现在可以使用了,谢谢!为此,我们不使用小数,这就是我使用int的原因。再次感谢。就是这样!非常感谢。感谢所有回应的人!我现在可以用了。
string letterGrade(int average)
{
if (average > 89)
return "A";
else if (average > 79 && average < 90)
return "B";
else if (average > 69 && average < 80)
return "C";
else if (average > 59 && average < 70)
return "D";
else if (average >= 0 && average < 60)
return "F";
else
return "-"; // negative value was passed!
}
string letterGrade(int average)