C语言编程:判断两个整数相等与约数关系

版权申诉
0 下载量 138 浏览量 更新于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语言的基础知识和编程逻辑,通过实践提升编程技能。