Visual Studio运行C++成绩计算代码percentage始终输出0问题求助
C++成绩百分比计算结果恒为0问题排查
核心问题原因
- 赋值语法错误:代码中
percentage(marks/300)*100;行缺少赋值运算符=,既没有对percentage变量完成赋值,还错误将变量当做函数调用。声明后的percentage未被赋值就输出,结果异常。 - 整数除法截断:即便补全赋值运算符,
marks为int类型、300为int常量,C++中两个int类型做除法会直接截断小数部分。此处marks总和为185,185/300的整数运算结果为0,乘以100后结果仍为0。
解决方法
- 补全赋值运算符
=,正确为percentage变量赋值 - 将除法运算的其中一个操作数转为浮点类型,避免整数截断,可选择将300改为浮点常量
300.0,或对marks做强制浮点转换(float)marks
修正后可运行代码
#include <iostream> using namespace std; int main(){ int marks; float percentage; cout<<"Marks of Robert are as follows :-"<<endl; cout<<"78,45,62"<<endl; marks=78+45+62; percentage = (marks / 300.0) * 100; cout<<"marks of Robert : "<<marks<<endl; cout<<"Percentage scored by Robert : "<<percentage<<endl; return 0; }
内容的提问来源于stack exchange,提问作者Rohit Singh
相关产品推荐
相关产品推荐

