【发布时间】:2018-07-11 05:12:20
【问题描述】:
我不知道这段代码有什么问题... =/
这是一个简单的代码,但是...
不输出结果。
似乎没有将用户输入作为参数。
字符串好像有问题。
给出我不理解的长错误 cmets,真的很长。
#include <iostream>
#include <string>
using namespace std;
int marks;
string result;
string gpa(marks){
if (marks >= 0 && marks <= 49){
result = "GPA: 0.00\n\n";
}
else if (marks >= 50 && marks <= 54){
result = "GPA: 1.00\n\n" ;
}
else if (marks >= 55 && marks <= 59){
result = "GPA: 2.00\n\n" ;
}
else if (marks >= 60 && marks <= 64){
result = "GPA: 2.30\n\n" ;
}
else if (marks >= 65 && marks <= 69){
result = "GPA: 2.70\n\n" ;
}
else if (marks >= 70 && marks <= 74){
result = "GPA: 3.00\n\n" ;
}
else if (marks >= 75 && marks <= 79){
result = "GPA: 3.30\n\n" ;
}
else if (marks >= 80 && marks <= 84){
result = "GPA: 3.70\n\n" ;
}
else if (marks >= 85 && marks <= 100){
result = "GPA: 4.00\n\n" ;
}
else if (marks > 100 && marks < 0){
result = "Error, please input again.\n\n" ;
}
return result;
}
int main(){
cin >> marks;
gpa (marks);
return 0;
}
【问题讨论】:
-
首先,您需要将函数签名提供给
string gpa(int marks)。其次,函数gpa有一个std::string返回。你称它为void函数。 -
所以,我把它从一个字符串改成了一个 void 函数,但是仍然有一点错误:variable or field 'gpa' declared void void gpa(marks){
-
这是否也意味着,对于除 int 之外的任何 return_type,我都应该放置 void?
-
您似乎四处游荡,寻求越来越不可能的解决方案。我建议您在继续之前停止并刷新您对文本中有关编写函数的部分的记忆。从基础开始,一个将标记作为参数并将其打印到屏幕上的函数。
-
作为参考,如果有“你不理解的长错误信息”,编译器仍在试图告诉你一些东西,其他人可能会理解它们。将它们放在问题中,至少尝试阅读它们,最终它们会有意义。