实现病历查询功能。具体要求如下:
定义一个结构体描述病人病历信息(病历号,姓名,症状);完成功能如下:
输入功能:输入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;
}
设计一个函数,计算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;
}
设计一个从三个整数类型数据中得到最大数据值和次大数值的函数,并设计一个主函数调用该函数。要求在主函数中显示出最大值和次大值。
#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);
}