acm 有序数列中插入数据 http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=10474

总是RE#include<stdio.h>intmain(){intcount,n,i,j,insert;inta[1000];scanf("%d",&count);wh... 总是RE
#include<stdio.h>
int main()
{
int count,n,i,j,insert;
int a[1000];
scanf("%d",&count);
while(count--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&insert);
for (i=0; i<n; ++i)
{
if (insert < a[i])
{
for (j=n; j>i; --j)
a[j] = a[j-1];
a[i] = insert;
n++;
break;
}
}
printf("%d", a[0]);
for (i=1; i<n; ++i){
printf(" %d", a[i]);
}
printf("\n");
}
return 0;
}
vc能够运行通过,但是提交老是RE
展开
 我来答
百度网友b17fc0e
2011-03-31 · 超过32用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:78.9万
展开全部
ACM中,RE即数组越界
先前没注意,看错了。现在仔细看了一遍,发现你的程序没问题,提交上去RE我感觉是这个原因,你的数组只开了1000个,题目却没有说明是多少的数组,这种情况下不妨能开多少开多少,你把数组范围改成100000或者更高试试呢?
追问
for(i=0;i<n;i++)
scanf("%d",&a[i]);
这一句只是a赋值到a[n-1],并不是他的空间只到a[n-1],前面给a开辟的空间是a[1000]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式