C语言算法总结:转换、条件判断与循环

需积分: 1 1 下载量 17 浏览量 更新于2024-09-12 收藏 23KB TXT 举报
"C语言算法总结,包括温度转换、数字处理、格式化输出、条件判断及循环结构的实例" 在C语言中,算法是解决问题的核心,通过一系列逻辑步骤实现特定功能。本资料总结了几个常见的算法示例: 1. 温度转换:这里展示的是华氏温度转摄氏温度的算法。公式为 `c = 5/9 * (f - 32)`,其中 `c` 代表摄氏温度,`f` 代表华氏温度。代码中使用浮点数运算确保精度,并通过 `printf` 函数进行输出。 ```c #include<stdio.h> main() { float c, f; scanf("%f", &f); c = 5.0 / 9 * (f - 32); // 使用5.0避免整数除法 printf("cis:%f", c); } ``` 1-2. 数字位处理:这段代码演示如何分别获取一个整数的百位、十位和个位。通过除以100、除以10取余和直接取余操作实现。 ```c a = x / 100; b = x / 10 % 10; c = x % 10; ``` 1-3. `printf` 格式化输出:例子展示了如何设置输出宽度和精度,如右对齐、填充空格以及小数点后的位数。 ```c printf("\n\n%7.3f,%-7.2f;;;%12.3f,%-12.2f", 122.8899, 122.8899, 122.8899, 122.8899); ``` 2. 条件判断:这部分涉及到了C语言中的条件控制结构,如 `if-else`、`switch-case` 和嵌套 `if`。 2-1. 多条件分支:根据变量 `x` 的值计算变量 `y`,分三种情况。 ```c float x, y; ... if (x <= 10) y = 10; else if (x > 10 && x <= 50) y = 10 - 1.0 / (10 - x); else y = 5; ``` 2-2. 求最大值:找到 `a`、`b`、`c`、`d` 四个数中的最大值并赋值给 `max`。 ```c ... if (a >= b && a >= c && a >= d) max = a; ``` 2-3. 判断数字位数:根据 `x` 的值确定其位数 `n`。 ```c if (x >= 1000) n = 4; else if (x >= 100 && x <= 999) n = 3; else if (x >= 10 && x <= 99) n = 2; else if (x >= 1 && x <= 9) n = 1; ``` 2-4. 判断闰年:检查输入的年份 `year` 是否为闰年,闰年的条件是能被4整除但不能被100整除,或者能被400整除。 ```c if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) printf("yes"); else printf("no"); ``` 3. 循环结构:C语言中的循环有 `while`、`do-while` 和 `for`。这里简要介绍它们的用法。 - `while` 循环:当条件满足时执行循环体,直到条件不满足。 - `do-while` 循环:至少执行一次循环体,然后检查条件是否满足,如果满足则继续执行。 - `for` 循环:适用于已知循环次数的情况,可以同时设置初始条件、结束条件和步进操作。 例如,计算阶乘的 `for` 循环: ```c int factorial = 1; for (int i = 1; i <= n; ++i) { factorial *= i; } ``` 总结来说,这个资料提供了一系列C语言基础算法的实例,涵盖了数值计算、条件判断和循环控制,对于初学者理解C语言的编程逻辑非常有帮助。通过这些实例,读者可以更好地掌握如何利用C语言解决实际问题。