输入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;*/ }
运行结果为:
虽然运行出来了,但是,跟官方的标准并不一样!很为震惊?
下面来看看官方的标准:
#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"); }
官方的运行结果为:
通过对比,俩个版本的结果,整体观念,显而易见
由此,笔者发现,对于某问题,还是在某情境下用数组比较好