c语言有序插入一个数的问题,虽然都说很简单,但是我没理解到,请高手指教谢谢!是怎么实现插入的。

可以将程序复制然后以注释的形式解答么,谢谢!#defineN10#include<stdio.h>voidmain(){inta[N];inti;intj;intx;in... 可以将程序复制然后以注释的形式解答么,谢谢!
#define N 10
#include <stdio.h>
void main()
{
int a[N];
int i;
int j;
int x;
int len;
len=0;
while(len<N)
{
printf("x=?");
scanf("%d",&x);
for(i=0;i<len;i++)
if(a[i]>x)
break;
for(j=len;j>i;j--)
a[j]=a[j-1];
a[i]=x;
len++;
printf("插入的结果如下:\n");
for(i=0;i<len;i++)
printf("%d ",a[i]);
printf("\n");
}
}
展开
 我来答
萧bless
2013-05-15 · 超过17用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:43.2万
展开全部
len =0;
while(len<N) #判断数组的长度是否小于10,是:从大到小插入一个数
{
printf("x=?"); #输入插入的整数x
scanf("%d",&x); #

for(i=0;i<len;i++) #顺序判断数组是否已经存在a[i]比x大,
if(a[i]>x)
break; #记录i值

for(j=len;j>i;j--) #把a[i]之后的数往后移一位,空出a[i]这个位置
a[j]=a[j-1];

a[i]=x; #把x的值赋值给a[i]

len++; #数组的长度增加1

printf("插入的结果如下:\n"); #打印当前数组的成员,
for(i=0;i<len;i++)
printf("%d ",a[i]);

printf("\n");
}
}

以上为程序的分析。不明白可以继续问。
追问
学习c怎么才能学好。要学多久?
追答
我自己比较蠢,看了很多书,考过一些试。
其实看书很重要。学校的教科书入门后简直觉得是垃圾。
介绍你一本书《C与指针》,慢慢看完它吧。
有兴趣就再看看《C专家编程》
oachao7
2013-05-15 · 超过30用户采纳过TA的回答
知道答主
回答量:192
采纳率:0%
帮助的人:91.3万
展开全部
把你的程序发上来 帮你看看
追问
#define N 10
#include
void main()
{
int a[N];
int i;
int j;
int x;
int len;
len=0;
while(lenx)
break;
for(j=len;j>i;j--)
a[j]=a[j-1];
a[i]=x;
len++;
printf("插入的结果如下:\n");
for(i=0;i<len;i++)
printf("%d ",a[i]);
printf("\n");
}
}
追答
不看了 没看懂 我写个给你吧 你自己编译调试 你的有序数列为递增的 递减的情况自己改写吧

int num[11];int n=10,i=0;
int x;
for(i=0;i0;i--)
{
if(num[i]>x)
{
num[i+1]=num[i];
}
else {num[i]=x;break;}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式