C语言算法总结:转换、条件判断与循环
需积分: 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语言解决实际问题。
2012-11-30 上传
2011-07-15 上传
2010-07-31 上传
2012-06-07 上传
2013-12-02 上传
2022-06-11 上传
点击了解资源详情
2023-06-01 上传
陌逝流年
- 粉丝: 0
- 资源: 1
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库