函数
大约 2 分钟
判断整型是否为素数
#include <stdio.h>
#include <stdbool.h>
// 简化的判断是否为素数的函数
bool is_prime(int num) {
if (num <= 1) return false;
for (int i = 2; i < num; i++) {
if (num % i == 0) return false;
}
return true;
}
int main() {
int upper_limit;
// 用户输入
printf("请输入一个大于4的数: ");
scanf("%d", &upper_limit);
if (upper_limit <= 4) {
printf("请输入大于4的数。\n");
return 1;
}
// 寻找并输出素数对
for (int i = 2; i <= upper_limit - 2; i++) {
if (is_prime(i) && is_prime(i + 2)) {
printf("(%d, %d)\n", i, i + 2);
}
}
return 0;
}
计算成绩
- 输入 10 个学生的成绩,分别用函数实现:
- 求平均成绩;
- 求超过平均成绩的人数;
- 按分数高低进行排序。
#include <stdio.h>
// 计算平均成绩
float calculate_average(int scores[], int num_students) {
int sum = 0;
for (int i = 0; i < num_students; i++) {
sum += scores[i];
}
return (float)sum / num_students;
}
// 计算超过平均分的人数
int count_above_average(int scores[], int num_students, float average) {
int count = 0;
for (int i = 0; i < num_students; i++) {
if (scores[i] > average) {
count++;
}
}
return count;
}
// 排序函数(使用冒泡排序)
void sort_scores(int scores[], int num_students) {
for (int i = 0; i < num_students - 1; i++) {
for (int j = 0; j < num_students - 1 - i; j++) {
if (scores[j] < scores[j + 1]) { // 降序排列
int temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
}
int main() {
int num_students = 10;
int scores[10]; // 存储10个学生的成绩
printf("请输入10个学生的成绩:\n");
for (int i = 0; i < num_students; i++) {
scanf("%d", &scores[i]);
}
float average = calculate_average(scores, num_students);
int above_average_count = count_above_average(scores, num_students, average);
sort_scores(scores, num_students);
printf("平均成绩:%.2f\n", average); // .2f 控制输出两位小数
printf("超过平均分的人数:%d\n", above_average_count);
printf("排序后的成绩:");
for (int i = 0; i < num_students; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
解释:
calculate_average
函数: 计算数组scores
中所有数的平均值。num_students
表示学生人数,也就是数组的大小。count_above_average
函数: 统计scores
数组中大于average
的元素个数。sort_scores
函数:使用冒泡排序算法对scores
数组进行降序排序。main
函数:程序入口。- 首先,声明一个大小为 10 的整型数组
scores
用于存储学生成绩。 - 使用循环提示用户输入 10 个学生的成绩,并将成绩存储到数组中。
- 调用
calculate_average
函数计算平均成绩。 - 调用
count_above_average
函数计算超过平均成绩的人数。 - 调用
sort_scores
函数对成绩进行排序。 - 最后,打印平均成绩、超过平均分的人数和排序后的成绩。
- 首先,声明一个大小为 10 的整型数组
编译运行这个程序,输入10个学生的成绩后,程序会输出平均成绩,超过平均分的人数,以及按从高到低排序后的成绩。