C++程序输出结果的差别
下面两个程序为什么输入的值相同(12.345和10),但输出结果却不同呢?请高手们指点指点,最好能详细说明,谢谢。#include<iostream.h>voidmain...
下面两个程序为什么输入的值相同(12.345和10),但输出结果却不同呢?请高手们指点指点,最好能详细说明,谢谢。
#include <iostream.h>
void main()
{
float x,y,z;
z=x*y;
cin>>x>>y;
cout<<"The product is :"<<z<<endl;
}
result:The product is :1.15292e+016.
而:
#include <iostream.h>
void main()
{
float x,y,z;
cin>>x>>y;
z=x*y;
cout<<"The product is :"<<z<<endl;
}
result:The product is:123.45 展开
#include <iostream.h>
void main()
{
float x,y,z;
z=x*y;
cin>>x>>y;
cout<<"The product is :"<<z<<endl;
}
result:The product is :1.15292e+016.
而:
#include <iostream.h>
void main()
{
float x,y,z;
cin>>x>>y;
z=x*y;
cout<<"The product is :"<<z<<endl;
}
result:The product is:123.45 展开
6个回答
2008-02-20
展开全部
cin>>x>>y;
和
z=x*y;
得到这种结果的原因是由于以上两个语句的执行顺序不同造成的,
第一个程序中,z=x*y先于cin>>x>>y;执行,由于在cin>>x>>y之前,x和y的值是未知的随机值,所以z就是两个未知的随机值的乘积,当然结果也是未知的。
第二个程序中,cin>>x>>;先于z=x*y执行,这就确保在执行乘法运算之前,x和y的值是已知的,所以z的值就是输入的x和y值的乘积。
和
z=x*y;
得到这种结果的原因是由于以上两个语句的执行顺序不同造成的,
第一个程序中,z=x*y先于cin>>x>>y;执行,由于在cin>>x>>y之前,x和y的值是未知的随机值,所以z就是两个未知的随机值的乘积,当然结果也是未知的。
第二个程序中,cin>>x>>;先于z=x*y执行,这就确保在执行乘法运算之前,x和y的值是已知的,所以z的值就是输入的x和y值的乘积。
展开全部
两个程序不同之处在于下面两个语句顺序
cin>>x>>y;
z=x*y; /*z得到的是x*y的值*/
而下面
z=x*y; /*x,y都是动态变量,其值为0,z的值应该是0才对*/
cin>>x>>y;
你之所以得到z值1.15292e+016跟你的编译系统使用了未释放的内存空间有关,导致x,y都是个随机数。我的编译系统是不把未释放的内存空间给新定义的变量的,所以得到的是0。
cin>>x>>y;
z=x*y; /*z得到的是x*y的值*/
而下面
z=x*y; /*x,y都是动态变量,其值为0,z的值应该是0才对*/
cin>>x>>y;
你之所以得到z值1.15292e+016跟你的编译系统使用了未释放的内存空间有关,导致x,y都是个随机数。我的编译系统是不把未释放的内存空间给新定义的变量的,所以得到的是0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定不一样啦
第一个程序中你的x,y还没有初始化就计算啦,变量在定义之后是一个随机的大数,必须赋值以后才能计算;所以计算的并不是你输入的两个数的乘积;
第二个程序是对的,变量必须在赋值以后才能使用正确
第一个程序中你的x,y还没有初始化就计算啦,变量在定义之后是一个随机的大数,必须赋值以后才能计算;所以计算的并不是你输入的两个数的乘积;
第二个程序是对的,变量必须在赋值以后才能使用正确
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float x,y,z;
z=x*y;
//x,y,z是局部变量,没有初始化的话是随机值,
那么z就是随机值,和你输入x,y无关
z=x*y;
//x,y,z是局部变量,没有初始化的话是随机值,
那么z就是随机值,和你输入x,y无关
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个程序中的x,y还没有初始化,因此z=x*y是随机值.
第二个程序中的x,y已经初始化,因此z=x*y的结果是正确的.
第二个程序中的x,y已经初始化,因此z=x*y的结果是正确的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哇,又上了一课
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询