关于C语言程序设计中的一个题目(已经排好的序的数组插入数后重新排列
有一个已经排好的序的数组,及今输入一个数,要求按原来排序的规律将它插入数组中。
程序如下
#include<stdio.h>
void main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int num,i,j;
printf("array a:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert data:");
scanf("%d",&num);
if(num>a[9])
a[10]=num;
else
{
for(i=0;i<10;i++)
if(a[i]>num)
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=num;
break;
}
}
printf("now,array a:\n");
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
}
我要问的是。。。
为什么是
if(num>a[9])
a[10]=num;
不是a[10]最大吗?
既然都定义了a[11],为什么不是a[10]呢?
插入的数num比a数组最后一个数大,讲其插入的数放在a数组末尾...
但是为什么是a[9]呢?。。。
for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=num;
break;
这段也不是很懂。。。