[英](C++) Why this program is giving the “0” or “nan” in the output?
我有这个简单的 C++ 程序,我必须输入 5 个科目的分数并计算它的百分比。 但我不知道为什么在 output 中它显示“0” ,如果我删除 input() 和 percent() 函数下的那些return 0语句,那么它在 output 中显示“nan” 。
这是代码:
#include<iostream>
using namespace std;
class Marks
{
float s1,s2,s3,s4,s5;
float p;
public:
float input();
float percentage();
};
float Marks::input()
{
cout<<endl<<"Enter the marks of your 5 subjects."<<endl;
cin>>s1>>s2>>s3>>s4>>s5;
cout<<"Subject 1="<<s1<<endl<<"Subject 2="<<s2<<endl<<"Subject 3="<<s3<<endl<<"Subject 4="<<s4<<endl<<"Subject 5="<<s5<<endl;
//return 0;
}
float Marks::percentage()
{
p=s1+s2+s3+s4+s5;
p=p/5;
cout<<p<<endl;
//return 0;
}
int main()
{
Marks student1;
cout<<"Marks of student 1 are as follow:"<<endl<<student1.input()<<endl;
cout<<"Student 1: Percentage = "<<student1.percentage()<<endl;
return 0;
}
这是 output:
您的函数承诺返回float
,但事实并非如此。 那是未定义的行为。 一旦你的程序在任何地方包含 UB,它就变得毫无意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.