stu finddkbest(stu tt[],int n,int k)
{
int i;
stu st;
st=tt[0];
//把剩余的学生的score[k]跟st的score[k]比一遍
for(i=1;i<n;i++)
if (tt[i].score[k]>st.score[k]) st=tt[i];
return st;
}
int main()
{
stu st[4]={"zhangsan",1001,56,75,89,0,"lisi",1002,77,88,99,0,"wangwu",1003,66,89,95,0,"maliu",1004,64,56,78,0};
stu t1;
int km;
scanf("%d",&km);
t1=finddkbest(st,4,km);
printf("%s,%ld,%.2f,%.2f,%.2f\n",t1.name,t1.number,t1.score[0],t1.score[1],t1.score[2]);
return 0;
}
拓展2:统计至少有两门课不及格的人数。
分析:
设计一个函数(统计至少有两门课不及格的人数)
int countrs(stu tt[],int n)
{
遍历所有学生
{
统计该生有多少门课不及格(score[0]..score[2])
如》=2,则人数计数器加1
}
返回人数计数器的值
}
int countrs(stu tt[],int n)
{
int i,j,rs=0,cnt; //rs统计人数,cnt统计每个人不及格的门数
for(i=0;i<n;i++)
{
//统计该生有多少门课不及格
cnt=0;
for(j=0;j<3;j++)
if (tt[i].score[j]<60) cnt++;
if (cnt>=2) rs++;
}
return rs;
}
#include <stdio.h>
#include <string.h>
struct students
{
char name[20];
long number;
float score[4]; //score[3]存放平均成绩
};
typedef struct students stu;
上一页
[1]
[2]
[3]
下一页