結構類型包含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的隨機值
}
}