1.有一个一维数组用于存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分,在主函数中调用这三个函数得到结果。 2.编写一个函数,判断某一个数是否为水仙花数。(水仙花数:一个三位数的各位数字的立方和等于该数本身) 3.用选择法对10个整数排序,10个整数用scanf()函数输入。
时间: 2023-03-22 10:01:09 浏览: 93
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
1.下面是求学生成绩的平均分、最高分和最低分的三个函数实现:
```
#include <stdio.h>
float average_score(float scores[], int num_students) {
float sum = 0;
for (int i = 0; i < num_students; i++) {
sum += scores[i];
}
return sum / num_students;
}
float max_score(float scores[], int num_students) {
float max = scores[0];
for (int i = 1; i < num_students; i++) {
if (scores[i] > max) {
max = scores[i];
}
}
return max;
}
float min_score(float scores[], int num_students) {
float min = scores[0];
for (int i = 1; i < num_students; i++) {
if (scores[i] < min) {
min = scores[i];
}
}
return min;
}
int main() {
float scores[10];
for (int i = 0; i < 10; i++) {
scanf("%f", &scores[i]);
}
printf("平均成绩:%f\n", average_score(scores, 10));
printf("最高成绩:%f\n", max_score(scores, 10));
printf("最低成绩:%f\n", min_score(scores, 10));
return 0;
}
```
2.以下是判断一个数是否为水仙花数的函数实现:
```
#include <stdio.h>
#include <stdbool.h>
bool is_narcissistic_number(int n) {
int digit, sum = 0, temp = n;
while (temp != 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == n;
}
int main() {
int n;
scanf("%d", &n);
if (is_narcissistic_number(n)) {
printf("%d是水仙花数\n", n);
} else {
printf("%d不是水仙花数\n", n);
}
return 0;
}
```
3.以下是使用选择法对10个整数排序的函数实现:
```
#include <stdio.h>
void selection_sort(int arr[], int n) {
int i, j, min_idx, temp;
for (i = 0; i < n - 1; i++) {
min_idx = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
int main() {
int arr[10];
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
selection_sort(arr, 10);
printf("排序结果:");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文