根据给定的信息,我们可以从标题、描述以及部分代码中提炼出与C语言相关的经典算法知识点。下面将逐一解析这些知识点: ### C语言100个经典算法 #### 知识点1:斐波那契数列 **描述:** 斐波那契数列是一种非常典型的递归数列,它在自然界、计算机科学等领域都有广泛的应用。斐波那契数列定义为:第0项是0,第1项是1,从第2项开始每一项都是前两项的和。 **示例代码:** ```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; // 更新后一项 } } ``` 此段代码展示了如何通过循环计算并打印斐波那契数列的前20对值。 #### 知识点2:素数判断 **描述:** 素数是指只能被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); } ``` 该段代码用于找出101到200之间的所有素数,并统计总数。 #### 知识点3:水仙花数 **描述:** 水仙花数是指一个三位数,其各个位上的数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。 **示例代码:** ```c main() { int i, j, k, n; printf("'Water flower' number is:"); for (n = 100; n < 1000; n++) { i = n / 100; // 百位 j = n / 10 % 10; // 十位 k = n % 10; // 个位 if (i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k) { printf("%-5d", n); } } printf("\n"); } ``` 此段代码用于找出100到999之间的所有水仙花数。 #### 知识点4:质因数分解 **描述:** 质因数分解是指把一个正整数写成几个质数相乘的形式。例如,90可以分解为2 * 3 * 3 * 5。 **示例代码:** ```c /* 正整数的质因数分解 */ main() { int n, i; printf("\nPlease input a number:\n"); scanf("%d", &n); printf("%d =", n); for (i = 2; i <= n; i++) { while (n != i) { if (n % i == 0) { printf("%d*", i); n = n / i; } else break; } } printf("%d", n); } ``` 该段代码实现了输入一个正整数,输出它的所有质因数的功能。 #### 知识点5:条件运算符 **描述:** 条件运算符也称为三目运算符,它可以根据表达式的真假返回不同的结果。格式为:(表达式)? 表达式1 : 表达式2。如果“表达式”的结果为真,则整个表达式的结果为“表达式1”的值;否则结果为“表达式2”的值。 **示例代码:** ```c main() { int score; char grade; printf("Please input a score\n"); scanf("%d", &score); grade = (score >= 90 ? 'A' : score >= 60 ? 'B' : 'C'); printf("%d belongs to %c", score, grade); } ``` 这段代码展示了如何使用条件运算符来根据学生成绩给出等级评定。 以上是基于提供的信息所总结出来的经典C语言算法知识点及其示例代码。这些算法不仅有助于理解C语言的基本概念,还能够帮助学习者掌握更复杂的编程技巧。
语言的学习基础,100个经典的算法
C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔
子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数
为多少?
__________________________________________________________________
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
___________________________________________________________________
程序源代码:
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;/*前两个月加起来赋值给第三个月*/
}
}
上题还可用一维数组处理,you try!
题目:判断101-200之间有多少个素数,并输出所有素数。
__________________________________________________________________
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整
除,则表明此数不是素数,反之是素数。
___________________________________________________________________
程序源代码:
#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++)
剩余43页未读,继续阅读
- 粉丝: 8
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助