题目要求:在一个已按升序排列的数组中插入一个数,插入后,数组仍然按照升序排列,已知升序数组为{1,2,4,6,8,9,12,15,149,156}
第一种方法:
要插入一个数,先随便用一个数去代替它的位置,然后再输入那个数顶替它
#include<stdio.h>
int main(){
int a[11]={1,1,2,4,6,8,9,12,15,149,156};
//a[0]初始化为一,即用一代替插入的数,然后通过冒泡法输出升序数组
int i,t;
scanf("%d",&a[0]);
printf("\n");
for(i=0;i<10;i++)
if(a[i]>a[i+1]){
t=a[i+1];
a[i+1]=a[i];
a[i]=t;
}
for(i=0;i<11;i++)
printf("%5d",a[i]);
}
第二种方法:
找出插入位置
#include<stdio.h>
int main(){
int a[11]={1,2,4,6,8,9,12,15,149,156};
int i,m,n;
scanf("%d",&m);
//找出到第n的数组的数大于m,即找出插入位置
for(i=0,n=0;i<11;i++){
n++;
if(m<a[i])
break;
}
//将m插入,其后的数后移一位
for(i=11;i>=n;i--){
a[i]=a[i-1];
}
a[n-1]=m;
for(i=0;i<11;i++)
printf("%5d",a[i]);
}
输入样例:5文章来源:https://www.toymoban.com/news/detail-534232.html
输出样例: 1 2 4 5 6 8 9 12 15 149 156文章来源地址https://www.toymoban.com/news/detail-534232.html
到了这里,关于C语言 数组中插入一个数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!