#include <stdio.h>
#include <math.h>
int main() {
int stu[30][6] = {0};
int max[6] = {0};
int min[6] = {0};
int level[6][5] = {0};;
// 输入成绩 在输入时判断输入的成绩是不是这课 是不是 比 max 高,高就写到max里
// 判断 输入的成绩 的等级 并在level 里记录下来
// 遍历每个人
for ( int i = 0 ; i < 6 ; i++ ) {
// 遍历 每门成绩
for ( int j = 0 ; j < 5 ; j++ ) {
// 输入成绩
scanf("%d", &stu[i][j]);
if(j == 0)
{
min[i] = stu[i][j];
}
// 判断是不是单科最高分
if ( max[i] < stu[i][j] ) {
max[i] = stu[i][j];
}
// 判断是不是单科最低分
if ( min[i] > stu[i][j] ) {
min[i] = stu[i][j];
}
// 判断等级
if ( stu[i][j] > 90 ) {
level[j][0]++;
} else if ( stu[i][j] > 80 ) {
level[j][1]++;
} else if ( stu[i][j] > 70 ) {
level[j][2]++;
} else if ( stu[i][j] > 60 ) {
level[j][3]++;
} else {
level[j][4]++;
}
}
}
// 打印出来
for( int i = 0 ; i < 6 ; i ++ ){
printf("\n 最高分 : %d \t ",max[i] );
for( int j = 0 ; j < 5 ; j++ ){
printf("%c:%d人 ",(char)j+'A',level[i][j]);
}
}
for( int i = 0 ; i < 6 ; i ++ ){
printf("\n 最低分 : %d \t ",min[i] );
for( int j = 0 ; j < 5 ; j++ ){
printf("%c:%d人 ",(char)j+'A',level[i][j]);
}
}
}
30个人 六科成绩 记录最高分最低分 这个程序有点问题 应该怎么改?
前面30个人六科成绩在我的程序里好像实现不了
我帮你写了一版,供你参考。如果对比你有帮助,望采纳。
#include <stdio.h>
#include <math.h>
int main() {
int stu[30][6] = {0};
int max[6] = {0};
int min[6] = {0};
int level[5] = {0};
// 输入成绩 在输入时判断输入的成绩是不是这课 是不是 比 max 高,高就写到max里
// 判断 输入的成绩 的等级 并在level 里记录下来
// 遍历每个人
for ( int i = 0 ; i < 30 ; i++ ) {
// 遍历 每门成绩
for ( int j = 0 ; j < 6 ; j++ ) {
// 输入成绩
scanf("%d", &stu[i][j]);
if (i == 0) {
min[j] = stu[i][j];
}
// 判断是不是单科最高分
if (max[j] < stu[i][j] ) {
max[j] = stu[i][j];
}
// 判断是不是单科最低分
if ( min[j] > stu[i][j] ) {
min[j] = stu[i][j];
}
// 判断等级
if (stu[i][j] > 90 ) {
level[0]++;
} else if ( stu[i][j] > 80 ) {
level[1]++;
} else if ( stu[i][j] > 70 ) {
level[2]++;
} else if ( stu[i][j] > 60 ) {
level[3]++;
} else {
level[4]++;
}
}
}
// 打印出来
for ( int i = 0 ; i < 6 ; i ++ ) {
printf("\n 最高分 : %d \t ", max[i] );
}
for ( int i = 0 ; i < 6 ; i ++ ) {
printf("\n 最低分 : %d \t ", min[i] );
}
for ( int j = 0 ; j < 5 ; j++ ) {
printf("%c:%d人 ", (char)j + 'A', level[j]);
}
return 0;
}