一个超简单cout的有关问题!
一个超简单cout的问题!!急!#include C9.hdouble average(int i,double j){coutint double:return (
一个超简单cout的问题!!急!
#include "C9.h"
double average(int i,double j)
{
cout<<"int double:";
return (i+j)/2;
}
int main()
{
double x;
int i;
cout<<"Enter value:";
while(!(std::cin>>x>>i))
{
cout<<"Bad input.Please enter a number:";
cin.clear();
while(cin.get()!='\n')
continue;
}
cout<<"average(int,double):"<<average(i,i)<<endl;
return 0;
}
假设输入x=30,i=20;
那么程序结果应该是:average(int,double):int double:25
才对
可是实际运行时却是int double:average(int,double):25
怎么反了啊!!!不信你们试试 I/O cin cout
[解决办法]为什么不应该是int double:average(int,double):输出顺序呢。
看到先调用average()进行计算啊
[解决办法]表达式的顺序 ,类似 (a+b) + (c+d),具体先算a+b还是先算c+d,没有规定。
这里就是先 打印 "average(int,double):” 还是先去求函数的值,不规定,只保证 "average(int,double):” 比函数的值先打印。所以25肯定在后面。