用c语言 三种方法写用函数方法重做:录入50个学生的成绩,统计100-90,89~80,79-70,69~60,59~0各分数 段学生的人数,并显示统计结果。
时间: 2024-06-10 12:05:50 浏览: 98
其实在ChitGPT的AI中,也是可以回答编程问题的哦!
那么,关于你的问题,以下是三种用函数方法重做的方式:
方法一:
```c
#include <stdio.h>
void inputScores(int scores[], int n);
void countScores(int scores[], int cnt[]);
void displayResults(int cnt[]);
int main() {
int scores[50], cnt[5] = { 0 };
inputScores(scores, 50);
countScores(scores, cnt);
displayResults(cnt);
return 0;
}
void inputScores(int scores[], int n) {
printf("请输入%d个学生的成绩:\n", n);
for (int i = 0; i < n; i++) {
printf("第%d个学生的成绩:", i + 1);
scanf("%d", &scores[i]);
}
}
void countScores(int scores[], int cnt[]) {
for (int i = 0; i < 50; i++) {
if (scores[i] >= 90 && scores[i] <= 100) cnt[0]++;
else if (scores[i] >= 80 && scores[i] <= 89) cnt[1]++;
else if (scores[i] >= 70 && scores[i] <= 79) cnt[2]++;
else if (scores[i] >= 60 && scores[i] <= 69) cnt[3]++;
else cnt[4]++;
}
}
void displayResults(int cnt[]) {
printf("100 ~ 90分: %d人\n", cnt[0]);
printf("89 ~ 80分: %d人\n", cnt[1]);
printf("79 ~ 70分: %d人\n", cnt[2]);
printf("69 ~ 60分: %d人\n", cnt[3]);
printf(" 0 ~ 59分: %d人\n", cnt[4]);
}
```
方法二:
```c
#include <stdio.h>
void inputScores(int *scores, int n);
void countScores(int *scores, int *cnt, int n);
void displayResults(int *cnt);
int main() {
int scores[50], cnt[5] = { 0 };
inputScores(scores, 50);
countScores(scores, cnt, 50);
displayResults(cnt);
return 0;
}
void inputScores(int *scores, int n) {
printf("请输入%d个学生的成绩:\n", n);
for (int i = 0; i < n; i++) {
printf("第%d个学生的成绩:", i + 1);
scanf("%d", scores + i);;
}
}
void countScores(int *scores, int *cnt, int n) {
for (int i = 0; i < n; i++) {
if (scores[i] >= 90 && scores[i] <= 100) cnt[0]++;
else if (scores[i] >= 80 && scores[i] <= 89) cnt[1]++;
else if (scores[i] >= 70 && scores[i] <= 79) cnt[2]++;
else if (scores[i] >= 60 && scores[i] <= 69) cnt[3]++;
else cnt[4]++;
}
}
void displayResults(int *cnt) {
printf("100 ~ 90分: %d人\n", cnt[0]);
printf("89 ~ 80分: %d人\n", cnt[1]);
printf("79 ~ 70分: %d人\n", cnt[2]);
printf("69 ~ 60分: %d人\n", cnt[3]);
printf(" 0 ~ 59分: %d人\n", cnt[4]);
}
```
方法三:
```c
#include <stdio.h>
void inputScores(int scores[], int n);
int countScoreRange(int scores[], int n, int min, int max);
int main() {
int scores[50], cnt[5] = { 0 };
inputScores(scores, 50);
cnt[0] = countScoreRange(scores, 50, 90, 100);
cnt[1] = countScoreRange(scores, 50, 80, 89);
cnt[2] = countScoreRange(scores, 50, 70, 79);
cnt[3] = countScoreRange(scores, 50, 60, 69);
cnt[4] = countScoreRange(scores, 50, 0, 59);
printf("100 ~ 90分: %d人\n", cnt[0]);
printf("89 ~ 80分: %d人\n", cnt[1]);
printf("79 ~ 70分: %d人\n", cnt[2]);
printf("69 ~ 60分: %d人\n", cnt[3]);
printf(" 0 ~ 59分: %d人\n", cnt[4]);
return 0;
}
void inputScores(int scores[], int n) {
printf("请输入%d个学生的成绩:\n", n);
for (int i = 0; i < n; i++) {
printf("第%d个学生的成绩:", i + 1);
scanf("%d", &scores[i]);
}
}
int countScoreRange(int scores[], int n, int min, int max) {
int cnt = 0;
for (int i = 0; i < n; i++) {
if (scores[i] >= min && scores[i] <= max) cnt++;
}
return cnt;
}
```
希望你能看懂以上三种函数方法的实现,有需要的话可以自行理解并运行代码进行测试哦!
阅读全文