C语言编程:判断两个整数相等与约数关系
版权申诉
38 浏览量
更新于2024-09-08
收藏 867KB PDF 举报
"啊哈C语言 第12讲 请告诉我谁大.pdf"
在这一讲中,我们关注的是C语言的基本语法以及条件判断语句的使用。题目提供了一个简单的C语言程序,目的是比较两个输入的整数是否相等,并根据结果输出相应的信息。然而,这个程序存在多个错误,我们需要对其进行修正。
首先,程序的代码如下:
```c
#include<stdio.h>
#include<stdlib.h>
intmain()
{
int a;
scanf("%d",&a,&b); // 错误1:未声明变量b
if(a=b); // 错误2:误用赋值运算符,应为比较运算符
printf("yes"); // 错误3:缺少花括号,if语句只影响了printf语句
else; // 错误4:分号多余,else后面不应有分号
prinf("no"); // 错误5:拼写错误,应为printf
system("pause");
return0;
}
```
1. **错误1**:在`scanf`函数中,未声明变量`b`。应该在`a`前面添加`int b`声明变量`b`。
2. **错误2**:在`if`语句中,使用了赋值运算符`=`, 应该改为比较运算符`==`,检查`a`是否等于`b`。
3. **错误3**:`if`语句没有使用花括号包围,这会导致`printf("yes")`总是被执行,不论条件是否满足。添加花括号将确保只有在条件为真时才会执行相关语句。
4. **错误4**:`else`后面的分号是多余的,应该删除,以使`else`与对应的`if`块正确连接。
5. **错误5**:`prinf`是拼写错误,应该修正为`printf`。
修正后的代码如下:
```c
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b); // 修正错误1:声明变量b并正确输入两个整数
if (a == b) // 修正错误2:使用比较运算符
{
printf("yes"); // 修正错误3:使用花括号包围
}
else
{
printf("no"); // 修正错误5:修正拼写错误
}
system("pause");
return 0;
}
```
此外,题目还提出了一个进阶练习,即编写程序判断第二个输入的正整数是否为第一个数的约数。为此,我们可以创建一个新的C程序:
```c
#include<stdio.h>
int main()
{
int num1, num2;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
if (num2 != 0 && num1 % num2 == 0) // 防止除以0的情况,并检查约数关系
{
printf("yes\n");
}
else
{
printf("no\n");
}
return 0;
}
```
关于C语言的学习资源,这里列出了几本推荐的C语言入门书籍:
1. 《啊哈C!思考快你一步——用编程轻松提升逻辑力》(双色)
2. 《啊哈C语言!逻辑的挑战(修订版)》
3. 《啊哈!算法》
4. 《不插电的计算机科学》
5. 《程序语言的奥妙:算法解读》
6. 《程序是怎样跑起来的》
7. 《计算机是怎样跑起来的》
8. 《明解C语言第3版入门篇》
9. 《零起点学通C语言(多媒体范例教学)(DVD)》(C语言软件开发从零基础到精通)
这些书籍可以帮助初学者深入理解C语言的基础知识和编程逻辑,通过实践提升编程技能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-09-16 上传
2021-09-16 上传
2021-04-08 上传
2013-01-05 上传
2015-09-25 上传
点击了解资源详情
dllglvzhenfeng
- 粉丝: 1w+
- 资源: 1932