你好,求问acm一直runtime error要怎解决?有什么办法?

#include<stdio.h>
#include<string.h>
main()
{
while(1)
{
char a[1000]={0};
gets(a);
int b=strlen(a);
int t[b];
for (int i=0;i<b;i++)
{
t[i]=a[i];
}
int i,j,temp;

for(i=0;i<b-1;i++)
for(j=i+1;j<b;j++)
if(t[i]>t[j]) {
temp=t[i];
t[i]=t[j];
t[j]=temp;
}
for(i=b-1;i>=0;i--){
printf("%c",t[i]);
}
printf("\n");
}
}

开心每一天1111
浏览 483回答 2
2回答

一只甜甜圈

runtime error可能是由于除于0、内存访问违规等问题造成的。你的问题出在数组开得太小了,题目的数据范围是n<=10000,而你的a数组只开到1000,是不够的,造成数组越界,内存访问违规。。把数组a开到10001,并放在main()函数外就可以了。

小怪兽爱吃肉

把a数组开到10001 写在函数外面
打开App,查看更多内容
随时随地看视频慕课网APP