将键盘输入一个数,插入到已降序排列的数组中,要求按原来的排序规律插入~~~
*********************************************************************
#include<stdio.h>
main()
{
int i,j=0,a[11]={20,18,16,14,12,10,8,6,4,2},k;
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
printf("Input k:");
scanf("%d",a[i]);
while(a[j]>k&&j<10)
j++;
for(i=0;i<10;i++)
a[i]=a[i-1];
a[j]=k;
for(i=0;i<11;i++)
printf("%4d",a[i]);
printf("\n");
}
**************************************************************
----------------解决方案--------------------------------------------------------
在上述问题中,主要是应用了一维数组问题,在定义数组时必须多开辟一个存储单元用于存放的数据.若要保证插入数后原数组仍按降序排列,应该先找到合适的位置再插入.本题采用的不是先把数放在最后位置,然后进行排序的算法.~~~~~
----------------解决方案--------------------------------------------------------
将键盘输入一个数,插入到已降序排列的数组中,要求按原来的排序规律插入~~~
*********************************************************************
#include<stdio.h>
main()
{
int i,j=0,a[11]={20,18,16,14,12,10,8,6,4,2},k;
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
printf("Input k:");
scanf("%d",a[i]);//改为scanf("%d",&k);
while(a[j]>k&&j<10)
j++;
for(i=0;i<10;i++)// 改为 for(i=9;i>=j;i--)
a[i]=a[i-1];// 改为 a[i+1]=a[i];
a[j]=k;
for(i=0;i<11;i++)
printf("%4d",a[i]);
printf("\n");
}
**************************************************************
----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
int i,j=0,a[11]={20,18,16,14,12,10,8,6,4,2},k;
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
printf("Input k:");
scanf("%d",&k);
while(a[j]>k&&j<10)
j++;
for(i=10;i>j;i--)
a[i]=a[i-1];
a[j]=k;
for(i=0;i<11;i++)
printf("%4d",a[i]);
printf("\n");
}
----------------解决方案--------------------------------------------------------
我是个初学者,在这里谢谢大家了~~~~
----------------解决方案--------------------------------------------------------