C语言算法总结:转换、条件判断与循环
下载需积分: 1 | TXT格式 | 23KB |
更新于2024-09-12
| 10 浏览量 | 举报
"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语言解决实际问题。
相关推荐









陌逝流年
- 粉丝: 0
最新资源
- 互联网搜索引擎:原理、技术与系统探索
- 硬盘容量与发展:内部资料详解
- 少走弯路:大学生成功指南
- USB驱动开发详解:从基础到应用
- J2ME游戏开发入门指南
- 网络设备解析:路由器、交换器与Hub的差异与作用
- AT89C2051:2KBytes Flash的8位微控制器
- 华为SmartAX MA5100 DSLAM设备详解
- C语言实现DSP中FFT:复数操作与自定义类示例
- YD/T5XXX-200X No.7信令网工程设计规范详解
- JSP代码示例:人事系统部署与JDBC配置
- 51单片机C编程实战指南
- BusHound5.0软件总线协议分析器使用手册
- ASP.NET入门指南:打造坚实基础
- 推荐 Java 学习资源:顶级开发者网站集合
- WinXP系统服务深度解析:八大关键服务详解