输入5个同学的3门课程成绩,计算各门课程的总分及平均分

简介: 输入5个同学的3门课程成绩,计算各门课程的总分及平均分

输入5个同学的3门课程成绩,计算各门课程的总分及平均分


当第一眼看见标题时候,笔者回想了一下,最近几天的所学,所思,这个竟然。。。原来如此简单!但是,当要使得正确无误的运算出来结果,看来对于弱弱的小白笔者而言,需要绞尽不少脑汁。


但是,好在结果虽出乎意料,但也惊人的运转出来,这是笔者在之前不敢想象的事情;我竟然也可以写出正确运转的代码!


废话不多说,直接上笔者所写的代码,供大佬参考:(内容多为坎坷)


望大家多多斧正


#include 
int main()
{
    int a[5][3];
    int i = 0, j = 0;
    float sum = 0;
    float ave = 0;
    printf("请输入五个同学的三门课程成绩: \n");
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf_s("%d ", &a[i][j]);
            printf("第%d个同学的成绩为:%d\n", i + 1, a[i][j]);
            sum += a[i][j];
            ave = sum / 3;
        }
        printf("成绩为:%f\n", sum);
        printf("平均值为:%f\n", ave);
    }
    //printf("成绩为:%f\n", sum);
    /*ave = sum / (i * j);
    printf("平均值为:%f\n", ave);*/
    return 0;
    /*printf("五个同学的三门课程成绩分别为: \n");
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("第%d的成绩为:%d \n", i + 1, a[i][j]);
        }
    }
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 3; j++)
        {
            sum += a[i][j];
        }
    }*/
    /*printf("成绩为:%f\n", sum);
    ave = sum/(i * j);
    printf("平均值为:%f\n", ave);
    return 0;*/
}


运行结果为:


0a2653c851af460fa595bd959398a8f1.png


虽然运行出来了,但是,跟官方的标准并不一样!很为震惊?


下面来看看官方的标准:


#include <stdio.h>
#define N 5                 //用了define 函数
int main()
{
    int i, j;
    int score[N][3], sum[3] = { 0 }, avg[3];
    printf("请输入五个同学的三门课程成绩:\n");
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf_s("%d", &score[i][j]);
        }
    }
    for (j = 0; j < 3; j++)
    {
        for (i = 0; i < N; i++)
        {
            sum[j] += score[i][j];
            avg[j] = sum[j] / N;
        }
    }
    printf("...................................\n");
    printf("请输入五个同学的三门课程成绩:\n");
    for (i = 0; i < N; i++)
    {
        printf("第%d位同学:", i + 1);
        for (j = 0; j < 3; j++)
            printf("%5d", score[i][j]);
        printf("\n");
    }
    printf(".............................\n");
    printf("总分为:");
    for(j=0;j<3;j++)
    {
        printf("%6d", sum[j]);
    }
    printf("\n");
    printf("平均分为:\n");
    for (j = 0; j < 3; j++)
    {
        printf("%6d", avg[j]);
    }
    printf("\n");
}


官方的运行结果为:


6de278e6d6694ce5bb08e7e842b7e74b.png


通过对比,俩个版本的结果,整体观念,显而易见


由此,笔者发现,对于某问题,还是在某情境下用数组比较好



目录
打赏
0
0
0
0
68
分享
相关文章
|
11月前
计算三个同学的总成绩、平均成绩。
计算三个同学的总成绩、平均成绩。
179 0
|
11月前
有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,并存到磁盘中
有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,并存到磁盘中
135 0
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
105 3
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
85 2
查询每位学生成绩大于85的课程
【8月更文挑战第5天】查询每位学生成绩大于85的课程。
87 7
|
11月前
|
C++
成绩统计(蓝桥杯)
成绩统计(蓝桥杯)
计算各门课的总分及平均分
输入五个同学三门课的成绩,计算各门课的总分及平均分,并输出。
131 0
教务系统以数组的方式输入6位同学的成绩,输出平均成绩(调用函数,结果保留两位小数)并分别按照成绩高低显示出每位同学的成绩状况。
教务系统以数组的方式输入6位同学的成绩,输出平均成绩(调用函数,结果保留两位小数)并分别按照成绩高低显示出每位同学的成绩状况。
C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(一)
C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(一)
543 0
C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(一)

热门文章

最新文章

下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等