#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxsize 10000
typedef struct{
char name[100];//姓名
char sex[100];//性别
int ID;//学号
float temperrature;//体温
int timein;//入馆时间
int timeout;//出馆时间
}infor;//定义一个图书馆来访者的信息的数据结构
infor *t[maxsize];
typedef struct{
infor M[maxsize];
int size;
}INFOR;//所有来访者的信息所构成的顺序表
void init(INFOR *p)//数据的顺序表置空
{
p->size=0;
}
void IN(INFOR *p)//数据顺序表的输入
{
if(p->size==maxsize) printf("数据是满的!");
printf("请输入姓名:");
scanf("%s",(p->M[p->size]).name);
printf("请输入性别:");
scanf("%s",(p->M[p->size]).sex);
printf("请输入学号:");
scanf("%d",&(p->M[p->size]).ID);
printf("请输入体温:");
scanf("%f",&(p->M[p->size]).temperrature);
printf("请输入入馆时间:");
scanf("%d",&(p->M[p->size]).timein);
printf("请输入出馆时间:");
scanf("%d",&(p->M[p->size]).timeout);
p->size=p->size+1;
}
void OUT(INFOR *p)//数据顺序表的输出
{ int i=0;
if(!p->size) printf("数据是空的!");
for(i=0;i<p->size;i++)
{
printf("姓名:");
puts(p->M[p->size].name);
printf("性别:");
puts(p->M[p->size].sex);
printf("学号:");
printf("%d\n",p->M[i].ID);
printf("体温:");
printf("%f\n",p->M[i].temperrature);
printf("入馆时间:");
printf("%d\n",p->M[i].timein);
printf("出馆时间:");
printf("%d\n",p->M[i].timeout);
}
}
void paixv(INFOR *p)//根据个人体温将个人信息按照体温从大到小排序
{
int i,j,done;
infor x;
i=1;done=1;
while(i<=p->size-1&&done)
{
done=0;
for(j=0;j<=p->size-1;j++)
if(p->M[j].temperrature<p->M[j+1].temperrature)
{
x=p->M[j];
p->M[j]=p->M[j+1];
p->M[j+1]=x;
done=1;
}
i++;
}
}
void overshoot(INFOR *p)//输出体温大于等于37度的人的信息
{
int i;
printf("体温大于等于37度的人信息为:\n");
for(i=0;i<=p->size-1;i++)
if(p->M[i].temperrature>=37.0)
{
printf("姓名:");
puts(p->M[p->size].name);
printf("性别:");
puts(p->M[p->size].sex);
printf("学号:");
printf("%d\n",p->M[i].ID);
printf("体温:");
printf("%f\n",p->M[i].temperrature);
printf("入馆时间:");
printf("%d\n",p->M[i].timein);
printf("出馆时间:");
printf("%d\n",p->M[i].timeout);
}
}
void find(INFOR *p)//查找
{
char x[30];
int i;
printf("请输入要查找的人的姓名:");
gets(x);
for(i=0;i<p->size-1;i++)
if(strcmp(p->M[p->size].name,x)==0);
{
printf("所查找的信息为:\n");
printf("姓名:");
puts(p->M[p->size].name);
printf("性别:");
puts(p->M[p->size].sex);
printf("学号:");
printf("%d\n",p->M[i].ID);
printf("体温:");
printf("%f\n",p->M[i].temperrature);
printf("入馆时间:");
printf("%d\n",p->M[i].timein);
printf("出馆时间:");
printf("%d\n",p->M[i].timeout);
}
}
main()//主函数
{
INFOR *s;
s = (INFOR*)malloc(sizeof(INFOR));//分配空间
// init(s);//顺序表置零
IN(s);//输入信息
OUT(s);//输出信息
find(s);//查找信息
overshoot(s);//输出体温大于等于37度的人的信息
paixv(s);//根据个人体温将个人信息按照体温从大到小排序
OUT(s);//输出信息
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable:4996)
#define maxsize 10000
typedef struct {
char name[100];//姓名
char sex[100];//性别
int ID;//学号
float temperrature;//体温
int timein;//入馆时间
int timeout;//出馆时间
}infor;//定义一个图书馆来访者的信息的数据结构
infor* t[maxsize];
typedef struct {
infor M[maxsize];
int size;
}INFOR;//所有来访者的信息所构成的顺序表
void init(INFOR* p)//数据的顺序表置空
{
p->size = 0;
}
void IN(INFOR* p)//数据顺序表的输入
{
if (p->size == maxsize) printf("数据是满的!");
printf("请输入姓名:");
scanf("%s", (p->M[p->size]).name);
printf("请输入性别:");
scanf("%s", (p->M[p->size]).sex);
printf("请输入学号:");
scanf("%d", &(p->M[p->size]).ID);
printf("请输入体温:");
scanf("%f", &(p->M[p->size]).temperrature);
printf("请输入入馆时间:");
scanf("%d", &(p->M[p->size]).timein);
printf("请输入出馆时间:");
scanf("%d", &(p->M[p->size]).timeout);
p->size = p->size + 1;
}
void OUT(INFOR* p)//数据顺序表的输出
{
int i = 0;
if (!p->size) printf("数据是空的!");
for (i = 0; i < p->size; i++)
{
printf("姓名:");
puts(p->M[p->size].name);
printf("性别:");
puts(p->M[p->size].sex);
printf("学号:");
printf("%d\n", p->M[i].ID);
printf("体温:");
printf("%f\n", p->M[i].temperrature);
printf("入馆时间:");
printf("%d\n", p->M[i].timein);
printf("出馆时间:");
printf("%d\n", p->M[i].timeout);
}
}
void paixv(INFOR* p)//根据个人体温将个人信息按照体温从大到小排序
{
int i, j, done;
infor x;
i = 1; done = 1;
while (i <= p->size - 1 && done)
{
done = 0;
for (j = 0; j <= p->size - 1; j++)
if (p->M[j].temperrature < p->M[j + 1].temperrature)
{
x = p->M[j];
p->M[j] = p->M[j + 1];
p->M[j + 1] = x;
done = 1;
}
i++;
}
}
void overshoot(INFOR* p)//输出体温大于等于37度的人的信息
{
int i;
printf("体温大于等于37度的人信息为:\n");
for (i = 0; i <= p->size - 1; i++)
if (p->M[i].temperrature >= 37.0)
{
printf("姓名:");
puts(p->M[p->size].name);
printf("性别:");
puts(p->M[p->size].sex);
printf("学号:");
printf("%d\n", p->M[i].ID);
printf("体温:");
printf("%f\n", p->M[i].temperrature);
printf("入馆时间:");
printf("%d\n", p->M[i].timein);
printf("出馆时间:");
printf("%d\n", p->M[i].timeout);
}
}
void find(INFOR* p)//查找
{
char x[30];
int i;
printf("请输入要查找的人的姓名:");
scanf("%s", &x);
for (i = 0; i < p->size - 1; i++)
if (strcmp(p->M[p->size].name, x) == 0)
{
printf("所查找的信息为:\n");
printf("姓名:");
puts(p->M[p->size].name);
printf("性别:");
puts(p->M[p->size].sex);
printf("学号:");
printf("%d\n", p->M[i].ID);
printf("体温:");
printf("%f\n", p->M[i].temperrature);
printf("入馆时间:");
printf("%d\n", p->M[i].timein);
printf("出馆时间:");
printf("%d\n", p->M[i].timeout);
}
}
int main()//主函数
{
INFOR* s;
s = (INFOR*)malloc(sizeof(INFOR));//分配空间
// init(s);//顺序表置零
IN(s);//输入信息
OUT(s);//输出信息
find(s);//查找信息
overshoot(s);//输出体温大于等于37度的人的信息
paixv(s);//根据个人体温将个人信息按照体温从大到小排序
OUT(s);//输出信息
return 0;
}
memset函数
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y