C语言编程:经典算法实战与解析

需积分: 9 1 下载量 129 浏览量 更新于2024-10-29 收藏 22KB TXT 举报
"C语言经典算法100例包含多种经典问题的解决方法,涉及斐波那契数列、打印101-200之间的素数、寻找水仙花数等算法实例。" 在C语言中,算法是解决问题的关键,本资源提供了100个经典的C语言算法例子。首先,我们来看第一个示例——斐波那契数列。斐波那契数列是一系列数字,其中每个数字是前两个数字的和,通常以0和1开始,例如:0, 1, 1, 2, 3, 5, 8, 13, 21...。提供的代码片段展示了如何生成斐波那契数列的前20项: ```c main() { long f1, f2; int i; f1 = f2 = 1; for (i = 1; i <= 20; i++) { printf("%12ld%12ld", f1, f2); if (i % 2 == 0) printf("\n"); /* 每两行换行 */ f1 = f1 + f2; /* 更新当前斐波那契数 */ f2 = f1 + f2; /* 更新下一个斐波那契数 */ } } ``` 接下来,我们讨论如何打印101到200之间的素数。素数是大于1且只有1和自身两个正因数的自然数。下面的代码遍历该范围内的每个数,检查是否为素数: ```c #include <math.h> main() { int m, i, k, h = 0, leap = 1; printf("\n"); for (m = 101; m <= 200; m++) { k = sqrt(m + 1); for (i = 2; i <= k; i++) if (m % i == 0) { leap = 0; break; } if (leap) { printf("%-4d", m); h++; if (h % 10 == 0) printf("\n"); } leap = 1; } printf("\nThe total is %d", h); } ``` 第三个例子是寻找水仙花数,水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。代码如下: ```c main() { int i, j, k, n; printf("Waterflower numbers are:"); for (i = 100; i < 1000; i++) { n = i; j = i / 100; k = (i % 100) / 10; if (i == (j * j * j) + (k * k * k) + (n % 10 * n % 10 * n % 10)) { printf("%d ", i); } } } ``` 这些例子覆盖了基础的编程概念,如循环、条件判断、数学运算以及数据类型,同时展示了如何用C语言解决实际问题。通过学习和实践这些经典算法,开发者可以提升对C语言的理解和应用能力。