第二十六课 实现线性表基本操作的函数 【项目1-4】

本文介绍了如何实现线性表的插入操作,以保持数组升序排列,并给出了一个冒泡排序的实现。此外,还展示了如何设计一个程序,根据学号顺序查找并输出学生分数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二十六课 实现线性表基本操作的函数



项目一【有序数组中插入数据(函数版)】

有一个足够“大”的数组a,其中已经存储了n个呈升序排列的数据。调用函数insert(a, n, m),可以将数m插入到a中的合适位置,使其仍然保持升序,并且返回值为数组中有效数字的个数(即原先的n加1)。
  例如,若a中数据为1 7 8 17 23 24 59 62 101,n=9,需要插入的数字m为50,调用函数insert(a, n, m)后,a中数据为1 7 8 17 23 24 50 59 62 101,n=10。
  下面给出了调用函数insert的main函数,请写出insert函数来,实现上述功能。

[cpp]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. int main()  
  2. {  
  3.     int a[N]= {1, 7, 8, 17, 23, 24, 59, 62, 101};  
  4.     int i, n=9;  
  5.     int m =50;  
  6.     n = insert(a, n, m);   //在长度为n的a数组中插入m,使仍保持有序  
  7.     for(i=0; i<n; ++i)  
  8.         printf("%d ", a[i]);  
  9.     printf("\n");  
  10.     return 0;  
  11. }  
代码:
#include<stdio.h>
#define N 10
int main()
{
    int a[10]={11,22,33,44,55,66,77,88,99};
    int i,j,num,t;
    for(i=0;i<N-1;i++)
        printf("%d ",a[i]);
    printf("\n输入数字:");
    scanf("%d",&num);
    a[9]=num;
    for(j=0;j<N-1;j++)
        for(i=0;i<N-j-1;i++)
        {
            if(a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
        }
    for(i=0;i<N;i++)
        printf("%d ",a[i]);
        printf("\n");
    return 0;
}
运行结果:


项目二【删除数组元素】
del函数的作用是删除数组a中的指定元素x,n为数组a的元素个数。函数的返回值,为删除元素后的有效元素个数(数组中可能有重复元素)。函数的原型为:
int del (int a[10],int n,int x)
(1)请实现这个函数,并完成测试。
(2)如果在函数调用时,要求数组中的元素呈升序排列呢?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值