C++求解程序中的错误:输入一个数n,再输入n个整数,输出最小值。

#includevoidmain(){intn;cout<<"Inputn:";cin>>n;inta[10],i,s=0;cout<<"Inputnumber:";fo... #include void main(){ int n; cout<<"Input n:"; cin>>n; int a[10],i,s=0; cout<<"Input number:"; for(i=0;i cin>>a[i]; for(i=1;i<=n;i++) if(a[i] s=i; cout<<"min="< 编译未发现错误。。。最后输出一个乱七八糟的数。程序错误在哪?求解。 展开
 我来答
佛壮侯锐意
2020-05-14 · TA获得超过1033个赞
知道小有建树答主
回答量:1766
采纳率:100%
帮助的人:8万
展开全部
这段代码有两个错误.
1)你的a[10]太小了,如果你输入的数字大于10个,程序就会崩溃
2)你最后输出的最小数字的a[i],这个是错误的,最后一轮循环之后,i已经递增到n+1了,你输出的是a[n+1],由于a[n+1]没有存放数据,输出的就是一个乱七八糟的数字.你应该是要输出a[s]
正确的代码如下:
#include
void
main()
{
int
n;
int
a[256],
i,
s
=
0;
cout
<<
"Input
n:";
cin
>>
n;
cout
<<
"Input
number:";
for
(i
=
0;
i
<
n;
i++)
{
cin
>>
a[i];
}
for
(i
=
1;
i
<=
n;
i++)
{
if
(a[i]
<
a[s])
{
s
=
i;
}
}
cout
<<
"min="
<<
a[s];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
支翊史龙
2019-01-19 · TA获得超过1191个赞
知道小有建树答主
回答量:1848
采纳率:100%
帮助的人:8.8万
展开全部
程序错在for(i=1;i<=n;i++),因为数组的下标是从1开始到n-1的,所以这里等于n指向了一个不存在的对象,更改下标范围即可实现~如下:
#include
void
main()
{
int
n;
cout<<"Input
n:";
cin>>n;
int
a[10],i,s=0;
cout<<"Input
number:";
for(i=0;i
>a[i];
for(i=0;i
评论
0
0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式