• 编写函数实现简单的插值进入有序数组问题


    归纳编程学习的感悟,
    记录奋斗路上的点滴,
    希望能帮到一样刻苦的你!
    如有不足欢迎指正!
    共同学习交流!
    🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
          老骥伏枥,志在千里!烈士暮年,壮心不已!
     

     

    一、题目要求:

            从键盘输入 10个整数,存储在数组中(数组长度大于 10),先按递增的顺序排序,再输入一个整数 n,将n插到数组中,并保持数组的有序性。

    二、分析:

            分析:将题目分解为以下4个函数实现。
            (1)void inputa(int a[],int n):功能是输入n个整数存储在整型数组的前n个元素中
            (2) void ouputa(int a[],int n):功能是输出整型数组的前n个元素的值。
            (3)void bubblesort(int a[],int n):功能是对整型数组的前n个数据按升序排序
            (4)void insert(int a[],int n,intx):功能是在有n个有序数据的数组中插入整数x,数组中的数据仍然有序。

            方法是用 x 和数组中的有序数据从后往前逐个比较,若数据大于x,则该数据后移一个位置,直到找到第一个比 x 小的数据,该位置的后一个位置就是插入 x的位置。

    三、程序设计:

    1. #include
    2. void inputa(int a[],int n);//声明函数inputa()
    3. void outputa(int a[],int n);//声明函数outputa()
    4. void bubbersort(int a[],int n);//声明函数bubbersort
    5. void insert(int a[],int n,int x);//声明函数insert
    6. int main(){
    7. int a[20],n;//定义数组a,最多可存放20个整数
    8. printf("请先输入10个整数:");
    9. inputa(a,10);//调用函数inputa(),输入10个数据到数组a中
    10. printf("排序后数组中的数据:\n");
    11. bubbersort(a,10);//调用函数bubbersort(),输出a前10个数据
    12. outputa(a,10);//调用函数outputa(),输出a前10个数据
    13. printf("请再输入1个整数:");
    14. scanf("%d",&n);
    15. printf("插入%d后数组中的数据:\n",n);
    16. insert(a,10,n);//调用函数insert(),在有10个有序的数组a中插入n
    17. outputa(a,11);//调用函数outputa(),输出数组a的前11个数据
    18. return 0;
    19. }
    20. void inputa(int a[],int n){//定义函数inputa()
    21. int i;
    22. for(i=0;i
    23. scanf("%4d",&a[i]);
    24. }
    25. }
    26. void outputa(int a[],int n){//定义函数outputa()
    27. int i;
    28. for(i=0;i
    29. printf("%4d",a[i]);
    30. }
    31. printf("\n");
    32. }
    33. void bubbersort(int a[],int n){//定义函数bubbersort()
    34. int i,j,temp;
    35. for(i=1;i<=n;i++){//n-1趟冒泡排序
    36. for(j=0;j
    37. if(a[j]>a[j+1]){//相邻两元素比较
    38. temp=a[j];
    39. a[j]=a[j+1];
    40. a[j+1]=temp;
    41. }
    42. }
    43. }
    44. }
    45. void insert(int a[],int n,int x){//定义函数insert()
    46. int i;
    47. for(i=n-1;i>=0&&x//当下标为i的数据大于x时
    48. a[i+1]=a[i]; //数据后移
    49. }
    50. a[i+1]=x;//将x插入合适的位置
    51. }

    四、运行结果:

    五、总结:

            从上例可以看出,在主函数中只是定义了存储数据的数组和变量,其他的工作几乎都是调用函数实现的,使程序设计模块化。  

            最后,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。若这篇文章中有哪些不正确的内容,欢迎大家在评论区和我交流讨论!

  • 相关阅读:
    点亮LED灯三盏
    【LeetCode】1979. 找出数组的最大公约数
    UDP通信
    Dapr 中文社区汇总
    MySQL导出sql脚本文件
    Nginx学习(在 Docker 中使用 Nginx)
    新能源汽车的能源动脉:中国星坤汽车电缆在新能源汽车电气化中的应用!
    基于Google Vertex AI 和 Llama 2进行RLHF训练和评估
    .Net Nullable reference types(可为空引用类型)
    玩转NFT夏季:这份工具宝典值得收藏
  • 原文地址:https://blog.csdn.net/2301_80585598/article/details/134518402