【重拾C语言】四、循环程序设计典例整理(最大公因数、阶乘求和、正整数翻译、打印字符方阵、斐波那契数列……)

目录

前言

四、循环程序设计

[4.3 程序设计实例](#4.3 程序设计实例)

[4.3.1 求两数最大公因数](#4.3.1 求两数最大公因数)

[4.3.2 阶乘求和](#4.3.2 阶乘求和)

[4.3.3 正整数翻译](#4.3.3 正整数翻译)

[4.3.4 打印字符方阵](#4.3.4 打印字符方阵)

[4.3.5 百钱百鸡问题](#4.3.5 百钱百鸡问题)

[4.3.6 斐波那契数列](#4.3.6 斐波那契数列)

[4.3.7 迭代法解方程](#4.3.7 迭代法解方程)


前言

ChatGPT

C语言是一种通用的、过程式的计算机编程语言,由贝尔实验室的Dennis Ritchie在20世纪70年代初开发。它被设计成一种简单、高效和可移植的语言,用于系统级编程和应用程序开发。

以下是C语言的一些主要特点:

  1. 结构化编程:C语言支持结构化编程,它提供了顺序执行、条件语句(如if-else和switch)和循环结构(如for和while),使程序更易于阅读、理解和维护。

  2. 中级语言:C语言同时具备高级语言和低级语言的特点。它提供了丰富的控制结构和操作符,可以直接访问内存和硬件,并且允许程序员进行底层的操作,如位操作和指针运算。

  3. 可移植性:C语言编写的程序具有很高的可移植性,因为它的语法和特性在不同的计算机系统上基本保持一致。这使得程序可以在不同的平台上进行编译和执行,而无需对代码进行太多的修改。

  4. 强大的标准库:C语言提供了一个丰富的标准库,其中包含了各种函数和工具,用于处理输入输出、字符串操作、内存管理、数学运算等。这些函数可以提高程序开发的效率,并且可以跨平台使用。

  5. 面向系统编程:由于C语言具有直接访问内存和硬件的能力,它经常用于开发操作系统、嵌入式系统和驱动程序等底层软件。C语言还提供了位操作和指针等特性,使得程序员可以更好地控制系统资源。

  6. 扩展性:C语言允许程序员编写自定义的函数和库,以扩展语言的功能。这使得C语言非常适合大型项目的开发,可以将代码组织成模块化的结构,并通过函数调用进行复用。

尽管C语言相对较为底层,但它仍然是一种非常重要和广泛应用的编程语言。它为程序员提供了强大的控制能力和性能优势,并且在各种领域,如系统编程、嵌入式开发、游戏开发等方面都得到了广泛应用。许多现代编程语言,如C++、Java和Python,都受到了C语言的影响,并在其基础上进行了扩展和改进。

四、循环程序设计

4.3 程序设计实例

4.3.1 求两数最大公因数

cpp 复制代码
#include <stdio.h>

int main() {
    int num1, num2;
    printf("请输入两个整数:");
    scanf("%d %d", &num1, &num2);

    int gcd;
    for (int i = 1; i <= num1 && i <= num2; i++) {
        if (num1 % i == 0 && num2 % i == 0) {
            gcd = i;
        }
    }

    printf("最大公因数是:%d\n", gcd);

    return 0;
}

4.3.2 阶乘求和

使用循环来计算一系列数字的阶乘并求和。

cpp 复制代码
#include <stdio.h>

int main() {
    int n;
    printf("请输入一个正整数:");
    scanf("%d", &n);

    int factorial = 1;
    int sum = 0;

    for (int i = 1; i <= n; i++) {
        factorial *= i;
        sum += factorial;
    }

    printf("阶乘和为:%d\n", sum);

    return 0;
}

4.3.3 正整数翻译

使用循环来将一个正整数翻译成对应的字符串表示。

4.3.4 打印字符方阵

cpp 复制代码
#include <stdio.h>

int main() {
    int size;
    printf("请输入方阵的大小:");
    scanf("%d", &size);

    if (size <= 0) {
        printf("无效的大小!请输入一个正整数。\n");
        return 0;
    }

    char character;
    printf("请输入要打印的字符:");
    scanf(" %c", &character);

    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            printf("%c ", character);
        }
        printf("\n");
    }

    return 0;
}

4.3.5 百钱百鸡问题

百钱百鸡问题是一个经典的数学问题,它可以通过穷举法解决。问题的描述如下:假设有100个钱和100只鸡,其中公鸡每只5钱,母鸡每只3钱,小鸡三只1钱。现在要用100钱买100只鸡,问公鸡、母鸡和小鸡各有多少只?

cpp 复制代码
#include <stdio.h>

int main() {
    printf("公鸡数量\t母鸡数量\t小鸡数量\n");

    for (int x = 0; x <= 20; x++) {
        for (int y = 0; y <= 33; y++) {
            int z = 100 - x - y;
            if (5 * x + 3 * y + z / 3 == 100 && z % 3 == 0) {
                printf("%d\t\t%d\t\t%d\n", x, y, z);
            }
        }
    }

    return 0;
}

4.3.6 斐波那契数列

cpp 复制代码
#include <stdio.h>

int main() {
    int n = 10; // 需要计算斐波那契数列的项数
    int a = 0, b = 1, temp, i;

    printf("斐波那契数列前 %d 项:\n", n);
    printf("%d %d ", a, b);

    for (i = 2; i < n; i++) {
        temp = a + b;
        printf("%d ", temp);
        a = b;
        b = temp;
    }
    printf("\n");

    return 0;
}

4.3.7 迭代法解方程

相关推荐
御风@户外15 分钟前
质数生成函数、质数判断备份
算法·acm
湫ccc19 分钟前
《Opencv》基础操作详解(2)
人工智能·opencv·计算机视觉
羑悻的小杀马特20 分钟前
【AIGC篇】畅谈游戏开发设计中AIGC所发挥的不可或缺的作用
c++·人工智能·aigc·游戏开发
闻缺陷则喜何志丹28 分钟前
【C++动态规划】1105. 填充书架|2104
c++·算法·动态规划·力扣·高度·最小·书架
CES_Asia29 分钟前
国资助力科技创新,闪耀CES Asia 2025
人工智能·科技·智能手机·智能音箱·智能电视
Dong雨39 分钟前
六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序
数据结构·算法·排序算法
达帮主1 小时前
7.C语言 宏(Macro) 宏定义,宏函数
linux·c语言·算法
eric-sjq1 小时前
基于xiaothink对Wanyv-50M模型进行c-eval评估
人工智能·python·语言模型·自然语言处理·github
是十一月末1 小时前
机器学习之KNN算法预测数据和数据可视化
人工智能·python·算法·机器学习·信息可视化
工业互联网专业1 小时前
基于OpenCV和Python的人脸识别系统_django
人工智能·python·opencv·django·毕业设计·源码·课程设计