C++:输入20个数,取最大最小值……

C++:输入20个数,取最大最小值……#include<iostream.h>#definesize20intmain(){inta[size],max,min;inti... C++:输入20个数,取最大最小值……
#include <iostream.h>
#define size 20

int main()
{
int a[size],max,min;
int i,j;
cin>>a[size];
for(i=0;i<size;i++)
{
if(a[i]>a[j])
j=i;
}
cout<<"最大值为:"<<max<<endl;
max=a[j];
for(i=0;i<size;i++)
{
if(a[i]<a[j])
j=i;
}
min=a[j];
cout<<"最小值为:"<<min<<endl;

return 0;
}

大神为什么我输入一个数之后就程序出错了呢?
展开
 我来答
White_MouseYBZ
2014-04-22 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6707万
展开全部
把cin>>a[size];改成cin>>a[i];放在for(i=0;i<size;i++)循环里一个一个地输入,数组是不能整体输入的,只能一个一个地输入数据。请记住数组的性质——它不是变量,是相同类型变量的集合。既然是变量的集合,你就只能一个变量一个变量地操作,数组只是把这些变量依次连续地存放在内存中,并提供了方便的寻址方法而已。
追问
那取最小值的那个循环怎么办?
追答
数据已经输入到数组里了,最小值的那个循环就不用管了,原来咋想的就咋办。为了不干扰你的思路,还是在cin>>a[size];处另建一处循环输入数据。前面的办法可少写一个循环,但我看你一下理解不了。用
for(i=0;i> a[i];
代替cin>>a[size];进行调试。
windkni
推荐于2018-05-10 · TA获得超过387个赞
知道小有建树答主
回答量:251
采纳率:100%
帮助的人:235万
展开全部
#include <iostream.h>
#define size 20+5 //最好给给定数组大小留一个缓冲区

int main()
{
int a[size];int max,min=0;
int i;
for(i=0;i<20;i++) //存入20个数
{
cin>>a[i];
}
max=a[0];
for(i=0;i<19;i++) //循环比较19次
{
if(max<a[i+1]) //如果后一个数比max的大,更新max的值
max=a[i+1];
}
cout<<"最大值为:"<<max<<endl;
min=a[0];
for(i=0;i<19;i++) //同上原理
{
if(min>a[i+1])
min=a[i+1];
}
cout<<"最小值为:"<<min<<endl;

return 0;
}
追问
大神,牛!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaobomo
2014-04-22 · TA获得超过523个赞
知道小有建树答主
回答量:533
采纳率:100%
帮助的人:366万
展开全部
cin>>a[size];这里就已经错了,size是20,数组越界了
追问
越界?不好意思我是菜鸟,大神能不能稍微解释下?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3926e9528
2014-04-22 · TA获得超过4200个赞
知道大有可为答主
回答量:4186
采纳率:48%
帮助的人:2854万
展开全部
输入数组用循环ba..
for(i=0;i<size,i++)
cin>>a[i];

a[size]是第21个数了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式