繁体   English   中英

(C++) 为什么这个程序在 output 中给出“0”或“nan”?

[英](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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM