typedef struct
{
char name[10];
int age;
float score;
}Car,*CarP;
TP*Mal(int n)//申请内存
{
TP *p=(TP *)malloc(sizeof(TP)*n);
if(p==NULL)
{
printf("申请失败;\n");
}
return p;
}
void ScaStru(CarP p,int n)//输入结构体
{
for(int i=0;i<n;i++)
{
printf("输入姓名:");
scanf("%s",(p+i)->name);
while(getchar()!='\n');
printf("输入年龄:");
scanf("%d",&(p+i)->age);
printf("输入分数:");
scanf("%f",&(p+i)->score);
}
}
void PriStru(CarP p,int n)
{
for(int i=0;i<n;i++)
{
printf("姓名:%s 年龄:%d 分数:%.2f\n",(p+i)->name,(p+i)->age,(p+i)->score);
}
}
int Serch(CarP p,char *q,int n)
{
for(int i=0;i<n;i++)
{
if(!Mystrcmp((p+i)->name,q))
return i+1;
}
return 0;
}
#include "0108.h"
int main(int argc, const char *argv[])
{
int n;
char key[10];
printf("输入人数:");
scanf("%d",&n);
CarP p=Mal(n);
ScaStru(p,n);
PriStru(p,n);
printf("输入查找对象:");
scanf("%s",key);
int c=Serch(p,key,n);
if(!c)
printf("查无此人\n");
else
printf("查找结果:姓名:%s 年龄:%d 分数:%.2f\n",(p+n-1)->name,(p+n-1)->age,(p+n-1)->score);
free(p);
p=NULL;
return 0;
}