生活随笔
收集整理的這篇文章主要介紹了
02 学生成绩表(C语言)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
某班期末考試科目為數學(MT)、英語(EN)和物理(PH),有最多不超過40人參加考試。請編程計算:(1)每個學生的總分和平均分;(2)每門課程的總分和平均分。
#include <stdio.h>
#define STUD_N 40
#define COURSE_N 3
void ReadScore(int score
[][COURSE_N
], long num
[], int n
);
void AverforStud(int score
[][COURSE_N
], int sum
[], float aver
[], int n
);
void AverforCourse(int score
[][COURSE_N
], int sum
[], float aver
[], int n
);
void Print(int score
[][COURSE_N
], long num
[], int sumS
[], float averS
[], int sumC
[], float averC
[], int n
);
int main(void)
{int score
[STUD_N
][COURSE_N
], sumS
[STUD_N
], sumC
[STUD_N
], n
;long num
[STUD_N
];float averS
[STUD_N
], averC
[STUD_N
];printf("input the total number of the students(n<=40):");scanf("%d", &n
); ReadScore(score
, num
, n
); AverforStud(score
, sumS
, averS
, n
); AverforCourse(score
, sumC
, averC
, n
); Print(score
, num
, sumS
, averS
, sumC
, averC
, n
); return 0;
}
void ReadScore(int score
[][COURSE_N
], long num
[], int n
)
{int i
, j
;printf("Input student's ID and score as: MT EN PH:\n");for (i
= 0; i
< n
; i
++){scanf("%ld", &num
[i
]); for (j
= 0; j
< COURSE_N
; j
++) {scanf("%d", &score
[i
][j
]); }}
}
void AverforStud(int score
[][COURSE_N
], int sum
[], float aver
[], int n
)
{int i
, j
;for (i
= 0; i
< n
; i
++){sum
[i
] = 0;for (j
= 0; j
< COURSE_N
; j
++) {sum
[i
] = sum
[i
] + score
[i
][j
]; }aver
[i
] = (float)sum
[i
] / COURSE_N
; }
}
void AverforCourse(int score
[][COURSE_N
], int sum
[], float aver
[], int n
)
{int i
, j
;for (j
= 0; j
< COURSE_N
; j
++){sum
[j
] = 0;for (i
= 0; i
< n
; i
++) {sum
[j
] = sum
[j
] + score
[i
][j
]; }aver
[j
] = (float)sum
[j
] / n
; }
}
void Print(int score
[][COURSE_N
], long num
[], int sumS
[],float averS
[], int sumC
[], float averC
[], int n
)
{int i
, j
;printf("Student's ID\t MT\t EN\tPH\tSUM\tAVER\n");for (i
= 0; i
< n
; i
++){printf("%12ld\t", num
[i
]); for (j
= 0; j
< COURSE_N
; j
++){printf("%4d\t", score
[i
][j
]); }printf("%4d\t%5.1f\n", sumS
[i
], averS
[i
]); }printf("SumoCourse\t");for (j
= 0; j
< COURSE_N
; j
++){printf("%4d\t", sumC
[j
]);}printf("\nAverofCourse\t");for (j
= 0; j
< COURSE_N
; j
++){printf("%4.1f\t", averC
[j
]);}printf("\n");
}
總結
以上是生活随笔為你收集整理的02 学生成绩表(C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。