结构与函数应用案例
发布时间:2022-07-06编辑:zhushican阅读(324)
【案例描述】
纠正以下代码中的错误:
#include<stdio.h>;
typedef struct{int m,s;}DA;
DA getMax(DA a[],n)//n为结构体数组a的元素个数
{ int i,k=0;
for(i=1;i<n;i++)
if(a[k]->s<a[i]->s)k=i;
return a[k];
}
main()
{ DA p,d[]={1,97,2,81,3,75,4,65,5,87};
p=getMax(d,5);
printf("%d:%d",p->m,p->s);
}
【案例分析】
1、预处理命令不是语句,不能以分号结尾
2、函数参数中,变量名必须给定数据类型
3、结构体变量是通过“变量名.成员”的方式引用成员,只有结构体类型的指针变量才使用“变量名->成员”的方式引用成员。
【参考代码】
#include<stdio.h>
typedef struct{int m,s;}DA;
DA getMax(DA a[],int n)
{ int i,k=0;
for(i=1;i<n;i++)
if(a[k].s<a[i].s)k=i;
return a[k];
}
main()
{ DA p,d[]={1,97,2,81,3,75,4,65,5,87};
p=getMax(d,5);
printf("%d:%d",p.m,p.s);
}