• GDPU 数据结构 天码行空1


    1. 病历信息管理

    实现病历查询功能。具体要求如下:
    定义一个结构体描述病人病历信息(病历号,姓名,症状);完成功能如下:
    输入功能:输入5个病人的信息;
    查询功能:输入姓名,在5个病历中进行查找,如果找到则显示该人的信息,如果没有找到,则显示“查无此人”。
    假设病历类型名为patient,要求使用指针,并使用以下两个函数(函数的实现自行完成):
    void readin(patient *p);//用来输入病人信息。
    void search(patient *p,char *x);//根据姓名查询病人病历信息,并打印出来。

    #include 
    #include 
    
    int i;
    struct patient {
        char name[100];//病人名称
        int id;//病历号
        char symptoms[10000];//症状
    };
    
    //用来输入病人信息。
    void readin(struct patient* p) {
        printf("请输入名称: ");
        scanf("%9s", p->name);
    
        printf("请输入病历号: ");
        scanf("%d", &(p->id));
    
        printf("请输入症状: ");
        getchar(); 
        scanf("%s", p->symptoms); 
    }
    
    //根据姓名查询病人病历信息,并打印出来。
    void search(struct patient* p, char* x) {
        for (i = 0; i < 5; i++) {
            if (strcmp(p[i].name, x) == 0) {
                printf("名称: %s\n", p[i].name);
                printf("病历号: %d\n", p[i].id);
                printf("症状: %s\n", p[i].symptoms);
                return;
            }
        }
        printf("查无此人\n", x);
    }
    
    int main() {
        struct patient patients[5];
    	
    	// 输入信息 
        for (i = 0; i < 5; i++) {
            readin(&patients[i]);
        }
    	
    	//输入查询的名字并查询 
        char searchname[10];
        printf("Enter a name to search: ");
        scanf("%9s", searchname);
        search(patients, searchname);
    
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    2. 1-2+3 函数

    设计一个函数,计算S=1-2+3-4+5-6+……+/-N的值,并计算你所设计的函数的时间复杂度

    🍑 时间复杂度:O(n) (貌似可以推公式找到O(1)的做法)

    #include
    
    #define N 1010
    int s[N];
    
    int main()
    {
    	int n;
    	for(int i = 1; i < N; i++)// o(n)
    	{
    		int flag = i%2==1 ? 1 : -1;
    		s[i] = s[i-1] + flag * i;
    	}
    	scanf("%d",&n);
    	printf("%d\n",s[n]);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    3. 排序

    设计一个从三个整数类型数据中得到最大数据值和次大数值的函数,并设计一个主函数调用该函数。要求在主函数中显示出最大值和次大值。

    #include
    #include
    using namespace std;
    
    void print(int a[3])
    {
    	sort(a,a+3);//默认排升序
    	cout <<"最大数为:"<< a[2] << " ,次大数为:" << a[1] <<endl;
    }
    
    int main()
    {
    	cout << "请输入3个整型数据" << endl;
    	int a[3] = {0};
    	for(int i = 0; i < 3; i++)
    		cin >> a[i];
    	print(a);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  • 相关阅读:
    7.1 yolov5优化模型时,自动标注xml数据
    SQL语言-关系数据库的标准语言
    C++ day1
    R语言—因子
    ios开发App,在App Store上架的app更新提交过程
    如何在麒麟上安装 ONLYOFFICE 桌面编辑器
    手写RPC框架--8.压缩报文
    ARK:《BIG IDEAS 2024》
    EdrawMax v12新鲜出炉,重新设计字体库UI
    [CG] 用 Docker 配置 Ubuntu OpenGL 环境
  • 原文地址:https://blog.csdn.net/lt6666678/article/details/132844828