C语言结构体编程:计算5个学生的总成绩、平均成绩和低于140分以下的人数,并输出低于140分的姓名
结构类型包含2个成员:姓名和成绩。
成绩用float型。
按照题意分数上限140以上。
下面代码,结构数组的值用随机数填充,分数的随机范围101~150。你要想手动输入,自己写输入替代我的init函数。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
typedef struct student
{
char name[20];
float score;
}STU;
void init(STU *stus);//随机数替代输入填充结构数组
void printStus(STU *stus);//打印数组
void getSumAndAvg(STU *stus);//获得总分和平均分
void findLes140(STU *stus);
int main()
{
STU stus[5];
init(stus);
printStus(stus);
getSumAndAvg(stus);
findLes140(stus);
return 0;
}
void findLes140(STU *stus)
{
int i;
printf("成绩低于140的学生信息为:\n");
for(i=0;i<5;i++)
if(stus[i].score<140)
printf("学生名:%s,成绩:%.1f\n",stus[i].name,stus[i].score);
printf("\n");
}
void printStus(STU *stus)
{
int i;
printf("结构数组中的信息为:\n");
for(i=0;i<5;i++)
printf("学生名:%s,成绩:%.1f\n",stus[i].name,stus[i].score);
printf("\n");
}
void getSumAndAvg(STU *stus)
{
float sum=0,avg;
int i;
for(i=0;i<5;i++)
sum+=stus[i].score;
avg=sum/5;
printf("总分:%.1f,平均分:%.1f\n\n",sum,avg);
}
void init(STU *stus)
{
int i;
srand(time(NULL));
printf("生成随机数值填充结构数组\n");
for(i=0;i<5;i++)
{
strcpy(stus[i].name,"学生");
stus[i].name[4]=i+1+'0';
stus[i].name[5]=0;
stus[i].score=(float)(rand()%50+101);//101~150的随机值
}
}