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");
}
} 展开
#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");
}
} 展开
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");
}
}
以上为程序的分析。不明白可以继续问。
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专家编程》
展开全部
把你的程序发上来 帮你看看
追问
#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;}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询