帮我看看这段程序问什么运行不正常

来源:百度知道 编辑:UC知道 时间:2024/06/10 18:57:50
#include <iostream>
using namespace std;
void main()
{ int x,p;
p=x*x;
cin>>x;
cout<<"p="<<p<<endl;
}

输入3,结果为687194760
请问为什么必须得是这个顺序
cin>>x;
p=x*x;
而不能反过来

p=x*x;
cin>>x;
这两句的位置反了。应改成:
cin>>x;
p=x*x;

(在这里,程序是从上到下执行的,如果按照你的写法在执行p=x*x时,x并没有赋值,此时x的值是内存中的残留数据,因此相乘以后肯定不对,而且当执行cin>>x时,相乘运算已经做完了,赋值已经不起作用了。)