C语言编程简单题目求解 急!

2024-12-12 14:18:33
推荐回答(2个)
回答1:

a数组定义的太小了,作为同时被这种测试系统虐过的人,可以告诉你,你根本想象不到那个测试会给你加多少大的数。10不可能够用,至少100,建议你用内存分配函数malloc
把int a[10]那行改成a=(int *)malloc(sizeof(int)*n)
头文件stdlib.h
不想改也行,试试看100 1000……,总会够大的
还有,就是你的程序本身也有错
do(j++)while……是先j自加再去判断while后面的条件,就是说你没有比较a[0]和x的大小,这样如果加进来的数是这一串数中的最小值时,就会出错,建议是用把j的初值赋为-1
希望能帮到你

回答2:

#include
int main()
{
int a[10],i,n,t;
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
scanf("%d",&t);
for(i=n-1;i>=0&&ta[i+1]=a[i];
a[i+1]=t;
for(i=0;iprintf("%d ",a[i]);
printf("%d\n",a[n]);
return 0;
}