C语言编程挑战:判断数字与找寻最小最大值
版权申诉
121 浏览量
更新于2024-07-17
收藏 988KB PDF 举报
"啊哈C语言 第12讲 逻辑挑战二:3个数怎么办.pdf"
在本讲中,我们关注的是C语言中的逻辑问题和基本操作。首先,给出的示例程序旨在检测输入的整数是否是7的倍数或者以7结尾。以下是程序的修正版:
```c
#include<stdio.h>
int main() {
int a;
scanf("%d", &a);
// 使用等号(==)进行比较,而非赋值(=)
if ((a % 7 == 0) || (a % 10 == 7)) {
printf("yes\n");
} else {
printf("no\n");
}
// 使用正确拼写的printf,而非prinf
system("pause");
return 0;
}
```
在原始代码中,存在以下几个错误:
1. 在条件语句`if(a%7=0|a%10=7);`中,应该使用等号`==`进行比较,而不是赋值运算符`=`.
2. `|`是位运算符,这里应使用逻辑或`||`。
3. `if`后的条件应该包含在括号内以确保正确的逻辑。
4. `else`后的`prinf("no")`应该是`printf("no\n")`,注意`f`和`n`的拼写。
5. 结束语句分号`;`在`if`和`else`后面是不必要的。
接下来,我们探讨了几个逻辑挑战:
1. **找出三个整数中的最小值**:可以使用三元运算符或嵌套的`if`语句来实现。例如,如果`a <= b && a <= c`,那么`a`是最小的。通过比较`b`和`c`,我们可以找到其他两个数的较小者。
```c
int min = (a <= b) ? ((a <= c) ? a : c) : ((b <= c) ? b : c);
printf("The minimum number is: %d\n", min);
```
2. **找出四个整数中的最大值**:类似地,可以使用类似的方法找到最大值。首先比较前两个数,然后将较大的数与第三个数比较,最后将结果与第四个数比较。
```c
int max = (a >= b) ? ((a >= c) ? ((a >= d) ? a : d) : ((c >= d) ? c : d)) : ((b >= c) ? ((b >= d) ? b : d) : ((c >= d) ? c : d));
printf("The maximum number is: %d\n", max);
```
3. **判断闰年**:根据闰年的规则,年份能被4整除但不能被100整除,或者能被400整除的都是闰年。
```c
int year;
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
printf("yes\n");
} else {
printf("no\n");
}
```
此外,提到了几本关于C语言入门的书籍,包括《啊哈C!思考快你一步》、《啊哈C语言!逻辑的挑战(修订版)》、《啊哈!算法》等,这些书籍可以帮助初学者深入理解和掌握C语言及编程逻辑。
2023-06-07 上传
2023-05-14 上传
2023-02-23 上传
2023-04-01 上传
2023-03-22 上传
2023-10-12 上传
2023-05-16 上传
2023-06-08 上传
dllglvzhenfeng
- 粉丝: 1w+
- 资源: 1881
最新资源
- WPF渲染层字符绘制原理探究及源代码解析
- 海康精简版监控软件:iVMS4200Lite版发布
- 自动化脚本在lspci-TV的应用介绍
- Chrome 81版本稳定版及匹配的chromedriver下载
- 深入解析Python推荐引擎与自然语言处理
- MATLAB数学建模算法程序包及案例数据
- Springboot人力资源管理系统:设计与功能
- STM32F4系列微控制器开发全面参考指南
- Python实现人脸识别的机器学习流程
- 基于STM32F103C8T6的HLW8032电量采集与解析方案
- Node.js高效MySQL驱动程序:mysqljs/mysql特性和配置
- 基于Python和大数据技术的电影推荐系统设计与实现
- 为ripro主题添加Live2D看板娘的后端资源教程
- 2022版PowerToys Everything插件升级,稳定运行无报错
- Map简易斗地主游戏实现方法介绍
- SJTU ICS Lab6 实验报告解析