#include <stdio.h>
int main() {
int a, b, c, temp;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
// 使用冒泡排序思想排序
if (a > b) { temp = a; a = b; b = temp; }
if (a > c) { temp = a; a = c; c = temp; }
if (b > c) { temp = b; b = c; c = temp; }
printf("从小到大排序:%d %d %d\n", a, b, c);
return 0;
}
2. 数组赋值并逆序输出
复制代码
#include <stdio.h>
int main() {
int arr[10];
// 赋值
for (int i = 0; i < 10; i++) {
arr[i] = i;
}
// 逆序输出
printf("逆序输出:");
for (int i = 9; i >= 0; i--) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
3. 用数组求Fibonacci数列的前20项
复制代码
#include <stdio.h>
int main() {
int fib[20] = {1, 1}; // 前两项初始化为1,1
// 计算Fibonacci数列
for (int i = 2; i < 20; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
// 输出结果
printf("Fibonacci数列前20项:\n");
for (int i = 0; i < 20; i++) {
printf("%6d", fib[i]);
if ((i + 1) % 5 == 0) printf("\n");
}
return 0;
}
4. 用函数求两个数的较大值
复制代码
#include <stdio.h>
// 求最大值函数
int max(int a, int b) {
return (a > b) ? a : b;
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
printf("较大的数是:%d\n", max(a, b));
return 0;
}
5. 用递归法求n!
复制代码
#include <stdio.h>
// 递归函数计算阶乘
long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (n < 0) {
printf("输入错误!负数没有阶乘。\n");
} else {
printf("%d! = %lld\n", n, factorial(n));
}
return 0;
}
6. 输出100到1000之间能被15整除的数
复制代码
#include <stdio.h>
int main() {
int count = 0;
printf("100到1000之间能被15整除的整数:\n");
for (int i = 100; i <= 1000; i++) {
if (i % 15 == 0) {
printf("%5d", i);
count++;
// 每输出10个数换行
if (count % 10 == 0) {
printf("\n");
}
}
}
if (count % 10 != 0) printf("\n");
printf("共计%d个数\n", count);
return 0;
}
7. 求10个学生成绩的平均值
复制代码
#include <stdio.h>
// 求平均成绩函数
float average(float score[], int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += score[i];
}
return sum / n;
}
int main() {
float score[10];
printf("请输入10个学生的成绩:\n");
for (int i = 0; i < 10; i++) {
printf("成绩%d: ", i + 1);
scanf("%f", &score[i]);
}
float avg = average(score, 10);
printf("平均成绩为:%.2f\n", avg);
return 0;
}
8. 数组操作和平均值计算
复制代码
#include <stdio.h>
// 函数声明
void fun1(int s[]);
void fun2(int s[], float w[]);
// 函数定义
void fun1(int s[]) {
for (int i = 0; i < 30; i++) {
s[i] = 2 * (i + 1); // 从2开始的偶数
}
}
void fun2(int s[], float w[]) {
for (int i = 0; i < 6; i++) {
int sum = 0;
// 每5个元素求平均值
for (int j = 0; j < 5; j++) {
sum += s[i * 5 + j];
}
w[i] = (float)sum / 5;
}
}
int main() {
int s[30];
float w[6];
// 调用函数
fun1(s);
fun2(s, w);
// 输出s数组
printf("数组s的元素:\n");
for (int i = 0; i < 30; i++) {
printf("%4d", s[i]);
if ((i + 1) % 10 == 0) printf("\n");
}
// 输出w数组
printf("\n数组w的元素(平均值):\n");
for (int i = 0; i < 6; i++) {
printf("w[%d] = %.2f\n", i, w[i]);
}
return 0;
}
9. 分数序列求和
复制代码
#include <stdio.h>
double sum(int n) {
double numerator = 2.0, denominator = 1.0; // 第一项:2/1
double total = 0.0;
for (int i = 1; i <= n; i++) {
total += numerator / denominator;
// 计算下一项
double temp = numerator;
numerator = numerator + denominator; // 下一项的分子是前一项分子分母之和
denominator = temp; // 下一项的分母是前一项的分子
}
return total;
}
int main() {
int n = 5;
double result = sum(n);
printf("分数序列前%d项的和为:%.6f\n", n, result);
return 0;
}
10. 求奇数的阶乘和
复制代码
#include <stdio.h>
// 计算阶乘的函数
long long factorial(int n) {
long long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int n;
long long total = 0;
printf("请输入一个奇数n:");
scanf("%d", &n);
if (n % 2 == 0) {
printf("输入的不是奇数!\n");
return 1;
}
// 计算1! + 3! + 5! + ... + n!
for (int i = 1; i <= n; i += 2) {
long long fact = factorial(i);
total += fact;
printf("%d! = %lld\n", i, fact);
}
printf("\n总和 = %lld\n", total);
return 0;
}