编程实现在一个已有数组如a={1,3,7,9,10}中插入一个整型数n(n值由拥护运行时输入),要求插入完毕后数组依然有序并输出数组所有元素))

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。

如果a数组是有序的了,新建一个比数组a打一个数据的数组b,那么用户输入后,就可以遍历a数组,讲数组a的所有元素与用输入的值进行比较,比他小的首先插入到数组b中,然后插入输入的元素,最后讲剩下的元素都依次插入到数组b中就可以了。
因为不确定数组a的大小,所以最好还是新建一个数组操作,否则怕会数组越界!

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>
int main()
{
    int a[6]={1,3,7,9,10};
    int len = 5;
    int n,i,l=len;
    scanf("%d",&n);
    while (a[--l]>n)
    {
        a[l+1] = a[l];
    }
    a[l+1] = n;
    for(i=0;i<len+1;i++)
        printf("%d ",a[i]);
    return 0;
}

img

循环数组a,找到比n大的值,插入该位置,该位置之后的元素都后移一个位置即可

#include <stdio.h>
int main(void) { 
  int i, n, x, a[100]; 
  printf("输入总个数:");
  scanf("%d", &n);
  printf("输入%d个数,注意要升序:",n);
  for(i = 0; i < n; i++)
    scanf("%d", &a[i]);
  printf("输入要插入的数:");
  scanf("%d", &x);
  i=n-1;
  while(i>=0&&x<a[i]){
    a[i+1]=a[i];
    i--;
  }
  i++;
  a[i]=x;
  for(i = 0; i < n + 1; i++)
    printf("%d ", a[i]);
  putchar('\n'); 
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632