|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- int i,a[11]={1,3,5,6,8,9,13,45,76,443},t;
-
- printf("已有列表:");
- for(i=0;i<10;i++)
- printf("%d ",a[i]);
- printf("\n请输入一个插入数:");
- scanf("%d",&t);
- for(i=0;i<11;i++)//2
- {
- if(t>a[i])
- {
- a[i+1]=t;
- do
- {
- a[i+2]=a[i+3];
-
- i++;
-
- }
- while(i<9);
- }
- else if(t<a[0])
- {
- a[0]=t;
- for(i=2;i<11;i++)
- {
- a[i]=a[i-1];
- }
- }
- else
- {
- continue;
- }
-
- }
- printf("\n插入该数后的列表:");
- for(i=0;i<11;i++)
- printf("%d ",a[i]);
- return 0;
-
-
复制代码 对一个已排好序的数组,向里面插入一个数,按原来排序的规律将他插入数组中,,
当我输入2的时候
输出的是 1 2 6 8 9 13 45 76 443 0 0
为什么呢 哪里出错了?
代码我是这么写的
- #include<stdio.h>
- #define LEN 11
- int main()
- {
- int i, a[LEN]={1,3,5,6,8,9,13,45,76,443}, t, j;
- printf("已有列表:");
- for( i=0; i<LEN-1; i++ ) // 10 个元素
- {
- printf("%d ", a[i]);
- }
- putchar('\n');
- printf("\n请输入一个插入数:");
- scanf("%d", &t);
- for( i=0; i<LEN-1; i++ ) // 10 个元素
- {
- if( t<a[i] ) // 先找到插入位置
- {
- for( j=LEN-1; j>i; j--) // 后移, 11 个元素 倒序序号=LEN-1=10
- {
- a[j] = a[j-1];
- }
- a[i] = t; // 插入
- break;
- }
- }
- printf("\n插入该数后的列表:");
- for( i=0; i<LEN; i++ ) // 11 个元素
- {
- printf("%d ",a[i]);
- }
- return 0;
- }
复制代码
|
|