C语言编程实践:解决问题与斐波那契数列
需积分: 9 171 浏览量
更新于2024-10-11
1
收藏 22KB TXT 举报
"C语言实验生活小问题"
本资源提供了100个C语言编程实例,旨在解决初学者在学习过程中遇到的一些常见问题。通过这些实例,初学者可以更好地理解和应用C语言的基本概念,提高编程技能。以下是部分示例代码及其解析:
1. 斐波那契数列:
斐波那契数列是数学中的一个重要概念,其特点是每个数字是前两个数字的和。给定的代码展示了如何用C语言生成斐波那契数列的前20项。程序首先初始化f1和f2为1,然后在循环中不断累加这两个值来生成序列,并打印结果。每次偶数次迭代时,代码会在输出中添加换行符,使得输出更易读。
```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; /* 更新f1 */
f2 = f1 + f2; /* 更新f2 */
}
}
```
2. 质数检测:
这段代码用于检查101到200之间的所有质数。质数是大于1且除了1和自身以外没有其他正因数的自然数。程序首先定义变量`leap`作为标记,表示当前数是否为质数。通过`sqrt()`函数计算出m+1的平方根,然后遍历2到这个平方根的整数部分,判断是否有因子。如果有因子,`leap`设为0并跳出循环。如果`leap`保持为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\n", h);
}
```
3. 水仙花数:
水仙花数是指一个三位数,其各位数字立方和等于原数。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。以下代码遍历100到999的数字,找出所有的水仙花数并打印。
```c
/* 水仙花数示例 */
main()
{
int i, j, k, n;
printf("Waterflower numbers are: ");
for (n = 100; n < 1000; n++)
{
i = n / 100; /* 百位 */
j = (n / 10) % 10; /* 十位 */
k = n % 10; /* 个位 */
if (i * i * i + j * j * j + k * k * k == n)
printf("%d ", n);
}
}
```
这些C语言实例涵盖了基础的数学运算、条件判断、循环控制以及函数使用等核心概念,对于初学者来说是非常宝贵的实践资料。通过练习和理解这些例子,学习者能够更好地掌握C语言的编程技巧,并逐步提升自己的编程能力。
2021-09-19 上传
2021-09-19 上传
2021-09-19 上传
2023-04-01 上传
2023-12-11 上传
2021-09-19 上传
2021-09-19 上传
2021-10-28 上传
2021-09-19 上传
wupc2057
- 粉丝: 0
- 资源: 5