输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。
输入描述:
五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。
输出描述:
五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。
示例1
输入:
98.5 96.0 100 99 88 60.5 77 88.5 99 60 80 80.5 89 91 92 93 94 95.5 96 97.5 100 98 88.5 88 78.5
复制输出:
98.5 96.0 100.0 99.0 88.0 481.5 60.5 77.0 88.5 99.0 60.0 385.0 80.0 80.5 89.0 91.0 92.0 432.5 93.0 94.0 95.5 96.0 97.5 476.0 100.0 98.0 88.5 88.0 78.5 453.0
以上是牛客网上一道题:主要问题是输出格式 根据这个形式,很容易想到二维数组,5行6列(包括总分数,以最后输出形式为准)可以二维数组double arr[5][6],使用两个循环嵌套进行数据输入输出
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
double arr[5][6];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
scanf("%lf",&arr[i][j]);
arr[i][5]=(arr[i][0]+arr[i][1]+arr[i][2]+arr[i][3]+arr[i][4]);
}
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
printf("%.1lf ",arr[i][j]);
printf("\n");
}
return 0;
}
记得输入数据后进行arr[i][5]的补齐。
#include <stdio.h>
int main()
{
int i = 0;
//5个学生
for(i=0; i<5; i++)
{
double sum = 0.0;
int j = 0;
double score = 0.0;
for(j=0; j<5; j++)
{
scanf("%lf", &score);
sum += score;
printf("%.1lf ", score);
}
printf("%.1lf\n", sum);
}
return 0;
}
上述是另外一种写法,牛客网仍能通过,但在visual studio上编译运行后的结果是和题干要求完全不同的。