题目如下:
设数组a的定义如下:int a[20]={2,4,6,8,10,12,14,16}; 已存入数组中的数据值已经按由小到大的顺序存放,现从键盘输入一个数据,把它插入到数组中,要求插入新数据以后,数组数据仍然保持有序。请编写一个程序实现上述功能。 **输入格式要求:"%d" 提示信息:"Enter n:" **输出格式要求:"%d " 程序运行示例如下: Enter n:11 2 4 6 8 10 11 12 14 16
代码如下:
#include <stdio.h>
#define N 8
int main()
{
int a[20]={2,4,6,8,10,12,14,16},n,temp;
printf("Enter n:");
scanf("%d",&n);
if(n>16)
{
for(int i=0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("%d ",n);
return 0;
}
for(int i=0;i<N;i++)
{
if(a[i]>n)
{
temp=i;
break;
}
}
for(int i=N;i>temp;i--)
{
a[i]=a[i-1];
}
a[temp]=n;
for(int i=0;i<=N;i++)
{
printf("%d ",a[i]);
}
}
做题的时候没有考虑n大于16的情况,所以有些条件不符合,对此进行了修正,欢迎交流