C语言编程?
以3名同学为例的代码如下:
运行结果如下:
附源码:(改为40名同学)
#include <stdio.h>
#define N 40
void inid(long id[]) { // 输入所有同学学号
int i;
for (i = 0; i < N; i++)
scanf("%ld", &id[i]);
}
void inscore(int score[][5]) { // 输入所有同学成绩
int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < 4; j++)
scanf("%d", &score[i][j]);
}
}
void sumscore(int score[][5]) { // 计算每名同学总分
int i, j;
for (i = 0; i < N; i++) {
score[i][4] = 0; // 总分初始化为0
for (j = 0; j < 4; j++)
score[i][4] += score[i][j];
}
}
void display(long id[], int score[][5]) {
int i, j;
printf("学号\t\t课程1\t课程2\t课程3\t课程4\t总分\n");
for (i = 0; i < N; i++) {
printf("%08ld", id[i]); // 输出8位学号,不够补0
for (j = 0; j < 4; j++) // 输出各科成绩
printf("\t%d", score[i][j]);
printf("\t%d\n", score[i][4]); // 输出总分
}
}
int main() {
long id[N];
int score[N][5];
inid(id);
inscore(score);
sumscore(score);
display(id, score);
return 0;
}