#include <stdio.h>
#define N 8
struct stu
{
char num[8]; //学号
float score;
};
void input(struct stu arr[])
{
int i;
for (i=0;i<N;i++)
{
printf("请输入学生%d的学号:",i+1);
scanf("%s",arr[i].num);
printf("请输入学生%d的成绩:",i+1);
scanf("%f",&arr[i].score);
}
}
float average(struct stu arr[])
{
float aver = 0.0;
int i;
for (i=0;i<N;i++)
{
aver += arr[i].score;
}
return (aver/N);
}
void print(struct stu arr[],float av)
{
int i;
printf("大于等于平均值的学生信息:\n");
for (i=0;i<N;i++)
{
if(arr[i].score >= av)
printf("学号:%s 成绩:%.2f\n",arr[i].num,arr[i].score);
}
}
int main()
{
struct stu arr[N];
float aver;
input(arr);
aver = average(arr);
printf("平均成绩:%f\n",aver);
print(arr,aver);
return 0;
}
不试试好好学习代码吗,既然有这门课程,不要白学,你在这里问到答案也没意义,这种东西的逻辑难度甚至没有小学的应用题难,你明明只需要了解一下c语言代码怎么用你就会写了,你要相信你自己好歹也读了这么多年书了,网上看看网课也好,不丢人
这应该不难吧,简单的写一下,没有编译调试,出现问题自己找一下
#include <stdio.h>
#define N 8
struct stu{
unsigned int num;
float score;
};
void SetStuInfo(struct stu *student,unsigned int num, float score);
float GetScoAverage(struct stu *students);
void PrintSco(struct stu *students, float Average);
int mian()
{
int ret ,i ;
struct stu students[N];
unsigned int num;
float score;
for(i=0;i<N;i++)
{
printf("Please input the %d students infomation",i);
scanf("please imput num %d",&num);
scanf("please imput score %f",&num);
SetStuInfo(&students[i],num,score);
}
ret = GetScoAverage(students);
PrintSco(students,ret);
return 0;
}
void SetStuInfo(struct stu *student,unsigned int num, float score)
{
student->num = num;
student->score = score;
}
float GetScoAverage(struct stu *students)
{
int i;
float Scores;
for(i=0;i<N;i++)
{
Scores += students[i].score;
}
return Scores;
}
void PrintSco(struct stu *students, float Average)
{
int i;
for(i=0;i<N;i++)
{
if(students[i].score > Average)
{
printf("%d",students[i].num);
}
}
}