从键盘输入十个数,输出最大值和最小值。为什么我的程序只能输出最大值,而最小值显示-858993460

#include<iostream.h>intmain(){inti,a,max,min;cout<<"输入10个数:";max=min=a;for(i=1;i<=10;... #include<iostream.h>

int main()
{
int i,a,max,min;
cout<<"输入10个数:";
max=min=a;

for(i=1;i<=10;i++)
{
cin>>a;
if(max<a)max=a;
if(min>a)min=a;

}

cout<<"max ="<<max<<endl;
cout<<"min ="<<min<<endl;
}
展开
 我来答
百度网友e43033c
2011-04-15 · TA获得超过1130个赞
知道小有建树答主
回答量:933
采纳率:100%
帮助的人:935万
展开全部
你第一次给max与min赋值的时候,a还没有输入,a中存储的数据是不确定的,对于你的程序,在内存的相应位置,a的值在没有输入时恰好为-858993460,显然,你输入的任何一个值都比它大,所以,最小值就是-858993460;而最大值就是你输入的值中的最大值。
解决方法:
你可以 给max赋初值0;
给min赋初值1000;
不要用未赋值的变量a给它们赋初值。
百度网友cb8d0e198
2011-04-15 · TA获得超过1198个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:781万
展开全部
#include<iostream.h>

int main()
{
int i,a,max,min;
cout<<"输入10个数:";
cin>>a;

max=min=a;

for(i=1;i<=9;i++)
{
cin>>a;
if(max<a)max=a;
if(min>a)min=a;

}

cout<<"max ="<<max<<endl;
cout<<"min ="<<min<<endl;
}
这样就可以了。。。因为你在输入数据之前,没有给a赋值,而是由系统随机给它赋了个值,这个正好是-858993460,因为你输入的所有值都比这个数要大,所以if(min>a)min=a;条件一直不成立,因而min=a;不会执行。。。
还有什么不明白的吗?
可以继续提问~~
追问
那这句话为什么要改成for(i=1;i<=9;i++)?
追答
因为我在前面进行了一次输入~~~
总共有10个数,之前输入了一个,所以剩下9个。。
还有什么不明白的吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式