C语言结构体编程:计算5个学生的总成绩、平均成绩和低于140分以下的人数,并输出低于140分的姓名

 我来答
自我编程
2020-03-17 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

结构类型包含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的随机值

    }

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式