目录
1.结构体的基础知识
(1)结构体类型的变量、数组和指针变量的定义
struct student
{
char name[12];
char sex;
struct date birthday;
float sc[4];
}std,pers[3],&pstd;
(2)对结构体成员变量的引用
结构体变量名.成员名 std.name
指针变量名->成员名 pstd->name
(*指针变量名).成员名 (*pstd).name
2.访问结构体成员、
//求n个幂数之和
double fun(struct mpow *x,int n)
{
int i,j;
double sum=0.0;
for(i=0;i<n;i++)
{
double p=1.0;
for(j=0;j<x[i].t;j++)
{
p=p*x[i].a;
}
sum+=p;
}
return sum;
}
3.计算结构体数组的平均值
//将高于等于平均分的学生数据存放到 b 中,高于等于平均分的学生人数通过 n 传回
double fun(STREC *a,STREC *b,int *n)
{
int i;
double av=0;
//求平均值
for(i=0;i<N;i++)
av+=a[i].s;
av=av/N;
//高于等于平均分的数据和人数
for(i=0;i<N;i++)
{
if(a[i].s>=av)
{
b[*n]=a[i];//高于等于平均分的数据
*n=*n+1;//高于等于平均分的人数
}
}
return av;
}
4.结构体数组的最大值和最小值
把分数最高的学生数据放到 b 中
int fun(STREC *a,STREC *b)
{
int i,j,k=0;
int max=a[0].s;
for(i=0;i<N;i++)
{
if(a[i].s>max) max=a[i].s;
}
for(j=0;j<N;j++)
{
if(a[j].s==max)
b[k++]=a[j];
}
return k;//分数最高的人数
}
5.在结构体数组中查找元素
STREC fun(STREC *a,char *b)
{
int i;
STREC a1={"\0",-1}
for(i=0;i<N;i++)
{
if(strcmp(a[i].num,b))
s1=a[i];
}
return s1;
}
6.结构体数组的排序
void fun(STREC a[])
{
int i,j,k=0;
STREC t,max;
for(i=0;i<N;i++)
{
max=a[i];
for(j=i+1;j<N;j++)
if(a[j].s>max.s)
{
max=a[j];
k=j;
}
t=a[i];
a[i]=max;
a[k]=t;
}
}