有一个已经排好顺序的数组,要求输入一个数后,按照原顺序将其插入数组中。

网上大多数资源没有考虑到输入的数字小于a[0]的情况,下面代码修复了这个小bug
代码段9-16 行即为输入的temp小于a[0]情况。

**

代码段参考如下:

  1 #include <stdio.h>
  2 int main()
  3 {
  4     int a[10] = {2,4,6,8,12,14,15,23,29};
  5     int i,j,temp;
  6     printf ("Enter an integer:\n");
  7     scanf  ("%d",&temp);
  8 
  9     if (temp<a[0])          // 如果比a[0]小,则原数组依次向后顺移,补充a[0]为输入的temp
 10       {
 11        for (i=8;i>=0;i--)
 12           {
 13            a[i+1] = a[i];
 14           }
 15         a[0] = temp;
 16       }
 17     else                        
 18     {
 19     for (i=8;i>=0;i--)
 20        {
 21         if (temp < a[i])
 22           {
 23            a[i+1] = a[i];
 24           }
 25         else
 26           {
 27            a[i+1] = temp;
 28            break;
 29           }
 30        }
 31     }
 32     for (j=0;j<10;j++)
 33        {
 34         printf ("%5d",a[j]);
 35        }
 36     printf ("\n");
 37     return 0;
 38 }

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值