341-十道经典程序设计题目

1. 输入3个数按由小到大的顺序输出

复制代码
#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;
}
相关推荐
CoovallyAIHub8 小时前
让本地知识引导AI追踪社区变迁,让AI真正理解社会现象
深度学习·算法·计算机视觉
爱装代码的小瓶子9 小时前
【C++与Linux基础】进程间通讯方式:匿名管道
android·c++·后端
CoderCodingNo9 小时前
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
开发语言·c++·算法
yumgpkpm9 小时前
预测:2026年大数据软件+AI大模型的发展趋势
大数据·人工智能·算法·zookeeper·kafka·开源·cloudera
独好紫罗兰9 小时前
对python的再认识-基于数据结构进行-a005-元组-CRUD
开发语言·数据结构·python
LYOBOYI1239 小时前
qtcpSocket详解
c++·qt
REDcker9 小时前
gRPC完整文档
服务器·网络·c++·网络协议·grpc
CoovallyAIHub9 小时前
AAAI 2026这篇杰出论文说了什么?用LLM给CLIP换了个“聪明大脑”
深度学习·算法·计算机视觉
wengqidaifeng9 小时前
数据结构(三)栈和队列(上)栈:计算机世界的“叠叠乐”
c语言·数据结构·数据库·链表
静听山水9 小时前
Redis核心数据结构
数据结构·数据库·redis