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="< 编译未发现错误。。。最后输出一个乱七八糟的数。程序错误在哪?求解。
展开
2个回答
展开全部
这段代码有两个错误.
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];
}
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];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询