本文主要是介绍有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码1:判断输入的数组是升序降序
代码二:直接对已有数组进行插入
#include <stdio.h>
#include <stdlib.h>//有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
int main()
{int a[100];int num;int i;printf("请输入已经排序好的数组!\n");for ( i=0;i<5;i++){scanf("%d",&a[i]);}printf("请输入要插入的数!\n");scanf("%d",&num);if(a[0]>a[1]){ //如果是降序 for(int j=0;j<5;j++){if (a[j]<=num){int temp1=a[j];a[j]=num;for(int k=j+1;k<6;k++){ int temp2=a[k];a[k]=temp1;temp1=temp2;
}
break;}}}else if(a[0]<a[1]){ // 如果是升序 for(int j=0;j<5;j++){if (a[j]>num){int temp1=a[j];a[j]=num;for(int k=j+1;k<6;k++){ int temp2=a[k];a[k]=temp1;temp1=temp2;}break; //(编程错误) }} }
for(i=0;i<6;i++)
printf("%6d",a[i]);return 0;
}
main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf("original array is:\n");
for(i=0;i<10;i++)printf("%5d",a[i]);
printf("\n");
printf("insert a new number:");
scanf("%d",&number);
end=a[9];
if(number>end)a[10]=number;
else{for(i=0;i<10;i++){ if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}
}
for(i=0;i<11;i++)printf("%6d",a[i]);
}
这篇关于有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!