C语言编程挑战:求最大公约数、最小公倍数与字符统计

需积分: 7 0 下载量 109 浏览量 更新于2024-07-28 2 收藏 123KB DOC 举报
"C语言题目集,包含计算最大公约数(GCD)与最小公倍数(LCM)、字符统计以及判断正整数位数的题目" 这篇内容包含了三道关于C语言编程的基础题目,旨在帮助学习者巩固和提高C语言编程能力。下面将对每个题目进行详细讲解。 1. 计算最大公约数(Greatest Common Divisor, GCD)与最小公倍数(Least Common Multiple, LCM): 这个程序首先通过`#include<stdio.h>`引入标准输入输出库。`main()`函数中定义了两个整型变量`u`和`v`用于存储用户输入的两个正整数,并声明了计算GCD的`hcf()`函数和LCM的`lcd()`函数。`hcf()`函数采用欧几里得算法,不断用较大的数除以较小的数,直到余数为0,此时较小的数即为GCD。`lcd()`函数则通过GCD来计算LCM,公式为`LCM = u * v / GCD(u, v)`。在主函数中,用户输入的两个数被传递给这两个函数,然后打印结果。 2. 统计输入字符串中的字母、数字、空格和其他字符数量: 该程序使用`#include<stdio.h>`和`#include<string.h>`库,定义了四个整型变量用于计数。`main()`函数接收用户输入的字符串并调用`count()`函数进行统计。`count()`函数遍历输入字符串,通过ASCII码比较判断字符类型,并相应增加计数器。最后,主函数打印统计结果。 3. 判断正整数的位数及输出原数: 这个程序通过`#include<stdio.h>`库进行输入输出操作。在`main()`函数中,用户输入一个正整数,然后调用未完整展示的`digit`函数来计算位数。这个函数通常会通过将数字不断除以10并累加计数来确定位数,最后输出原数和计算出的位数。 这三道题目涵盖了基本的输入输出、循环、条件判断以及数学运算等C语言核心概念。通过解决这些问题,学习者可以更好地理解和掌握C语言的基础编程技巧。