C语言编程简单题目求解 急!
2个回答
展开全部
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
希望能帮到你
把int a[10]那行改成a=(int *)malloc(sizeof(int)*n)
头文件stdlib.h
不想改也行,试试看100 1000……,总会够大的
还有,就是你的程序本身也有错
do(j++)while……是先j自加再去判断while后面的条件,就是说你没有比较a[0]和x的大小,这样如果加进来的数是这一串数中的最小值时,就会出错,建议是用把j的初值赋为-1
希望能帮到你
展开全部
#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;
}
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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询