|
发表于 2023-3-7 09:08:43
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zzs2963584895 于 2023-3-9 21:27 编辑
1.实现病历查询功能。具体要求如下:
定义一个结构体描述病人病历信息(病历号,姓名,症状);完成功能如下:
1) 输入功能:输入5个病人的信息;
2) 查询功能:输入姓名,在5个病历中进行查找,如果找到则显示该人的信息,如果没有找到,则显示“查无此人”。
假设病历类型名为patient,要求使用指针,并使用以下两个函数(函数的实现自行完成):
void readin(patient *p);//用来输入病人信息。
void search(patient *p,char *x);//根据姓名查询病人病历信息,如果成功则打印病人信息,如果不成功显示“查无此人”。
提示:请注意输入函数的用法。
2.设计一个函数,计算S=1-2+3-4+5-6+……+/-N的值,并计算你所设计的函数的时间复杂度。
3. 歌德巴赫猜想:任一大于2的偶数,都可以表示成两个素数之和。请编写自定义函数验证:2000以内大于2的偶数都能够分解为两个素数之和。
第一题
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- struct patient{
- char id[256];
- char name[256];
- char symptom[256];
- struct patient *next;
- };
- void getinput(struct patient *head){
- printf("请输入病历号:");
- scanf("%s",head->id);
- printf("请输入姓名:");
- scanf("%s",head->name);
- printf("请输入症状:");
- scanf("%s",head->symptom) ;
- }
- void readin(struct patient **head){
- struct patient *new,*temp;
- new=(struct patient*)malloc(sizeof(struct patient));
- if(new==NULL){
- printf("内存分配失败!\n");
- exit(1);
- }
- getinput(new);
- if(*head!=NULL){
- temp=*head;
- *head=new;
- new->next=temp;
- }
- else{
- *head=new;
- new->next=NULL;
- }
-
- }
- struct patient *search(struct patient *head,char *x){
- struct patient *current;
- current=head;
- while(current!=NULL){
- if(!strcmp(current->name,x))
- {
- break;
- }
- current=current->next;
- }
- return current;
- }
- void release(struct patient **head){
- struct patient *temp;
- while(*head!=NULL){
- temp=*head;
- *head=(*head)->next;
- free(temp);
- }
- }
- void print(struct patient* head)
- {
- struct patient *p=head;
-
- printf("%s\n",p->id);
- printf("%s\n",p->name);
- printf("%s\n",p->symptom);
- }
- int main()
- {
- struct patient *head=NULL,*p;
- int n=5;
- char name[256];
- while(n--){
- readin(&head);
- }
- printf("请输入要查找病人的姓名:");
- scanf("%s",name);
- p=search(head,name);
- if(p)print(p);
- else printf("查无此人\n");
- return 0;
- }
复制代码
- 请输入病历号:123
- 请输入姓名:小张
- 请输入症状:发烧
- 请输入病历号:456
- 请输入姓名:小李
- 请输入症状:头痛
- 请输入病历号:789
- 请输入姓名:小王
- 请输入症状:胃痛
- 请输入病历号:321
- 请输入姓名:小任
- 请输入症状:咽痛
- 请输入病历号:654
- 请输入姓名:小白
- 请输入症状:牙痛
- 请输入要查找病人的姓名:小白
- 654
- 小白
- 牙痛
复制代码
|
|