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

运行结果和题目给的一样 换了好多组数据也都是正确输出 每个数字结尾也都有空格 哪里错了???

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
希望能帮到你
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-19
#include<stdio.h>
int main()
{
int a[10],i,n,t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&t);
for(i=n-1;i>=0&&t<a[i];i--)
a[i+1]=a[i];
a[i+1]=t;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
return 0;
}本回答被网友采纳
相似回答