((C ++)为什么此程序在输出中给出“ 0”或“ nan”?

问题描述 投票:-1回答:1

我有一个简单的C ++程序,我必须在其中输入5个主题的分数并计算其百分比。但是我不知道为什么在输出中显示“ 0”,如果我删除了input()和percent()函数下的return 0语句,那么它在输出。

这里是代码:

#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

我有一个简单的C ++程序,我必须在其中输入5个主题的分数并计算其百分比。但是我不知道为什么在输出中显示“ 0”,如果我删除那些返回0的语句...

c++ nan
1个回答
1
投票
您的函数有望返回float,但不会。那就是undefined behaviour。并且一旦您的程序包含UB

anywhere

© www.soinside.com 2019 - 2024. All rights reserved.