如何解决总和是1,与数字无关
在最后一个cout语句中具有cal_sum的结果为1,与输入的值无关。当在cout语句中输入x + y代替cal_sum时,我得到正确的答案。为什么?
#include<iostream>
using namespace std;
//sum of 2 numbers.
int cal_sum(int a,int b)
{
int sum;
sum=a+b;
return sum;
}
int main()
{
int x,y;
cout<<"enetr any 2 no\n";
cin>>x;
cin>>y;
cal_sum(x,y);
cout<<"sum ="<<cal_sum;
}
解决方法
您应该自己打印cal_sum
时自己打印cal_sum(x,y)
:
#include <iostream>
//sum of 2 numbers.
int cal_sum(int a,int b)
{
return a + b;
}
int main()
{
int x,y;
std::cout << "enetr any 2 no\n";
std::cin >> x;
std::cin >> y;
std::cout << "sum =" << cal_sum(x,y);
}
您可能想知道为什么打印cal_sum
总是打印1
。原因是使用功能的<<
运算符没有重载,因此cal_sum
被打印为bool
。 cal_sum
不是nullptr
,因此它是true
或1
,如输出所示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。