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

本文主要是介绍【重拾C语言】四、循环程序设计典例整理(最大公因数、阶乘求和、正整数翻译、打印字符方阵、斐波那契数列……),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

四、循环程序设计

4.3 程序设计实例

4.3.1 求两数最大公因数

4.3.2 阶乘求和

4.3.3 正整数翻译

4.3.4 打印字符方阵

4.3.5 百钱百鸡问题 

4.3.6 斐波那契数列

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 求两数最大公因数

#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 阶乘求和

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

#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 打印字符方阵

#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只鸡,问公鸡、母鸡和小鸡各有多少只?

#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 斐波那契数列

#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 迭代法解方程

这篇关于【重拾C语言】四、循环程序设计典例整理(最大公因数、阶乘求和、正整数翻译、打印字符方阵、斐波那契数列……)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/2750

相关文章

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序