啊哈C语言 第五章 【代码】【习题答案】
目录
第三节 逻辑挑战7:判断质数很简单
判断5是否为质数:
判断5是否为质数(反向思维):
判断5是否为质数(改善方法):
判断任意一个数是不是质数:
输出一个数的所有约数,如果没有约数就是质数:
第4节 更快一点:break
判断一个正整数是否为质数:
用break语句输出1 2 3 4 5:
第5节 continue
用continue语句打印1~100的偶数:
第6节 逻辑挑战8:验证哥德巴赫猜想
判断一个数是否为质数:
在4~100内验证哥德巴赫猜想并输出每个偶数的所有可能的拆分方法:
第7节 逻辑挑战9:水仙花数
用三重嵌套循环来产生100~999:
在100~999中判断哪个数字是“水仙花数”(拼接法):
在100~999中判断哪个数字是“水仙花数”(分割法):
输入一个3位数,求这个数个位、十位和百位的数之和:
输入范围在1~99999999的n位数,求这个n位数每一位上的数之和:
第8节 逻辑挑战10:解决奥数难题
请在两个□内填入相同的数字使得等式成立:□3 * 6528 = 3□ * 8256
请问A、B、C、D、E(5个互不相同的整数)分别为多少时,ABCD*E=DCBA:
用1~6自然数组成一个三角形并让这个三角形三条边上数字之和相等:
第9节 逻辑挑战11:猜数游戏
限定6次猜0~99的整数:
生成一个1~20000000的随机数:
第10节 逻辑挑战12:你好坏,关机啦
启动关机程序与6次猜数问题结合:
第三节 逻辑挑战7:判断质数很简单
判断5是否为质数:
#include <stdio.h>
#include <stdlib.h>int main()
{int a;a = 5;if (a % 2 != 0 && a % 3 != 0 && a % 4 != 0){printf("质数\n");}else{printf("合数\n");}system("pause");return 0;
}
调试结果:
判断5是否为质数(反向思维):
#include <stdio.h>
#include <stdlib.h>int main()
{int a;a = 5;if (a % 2 == 0 || a % 3 == 0 || a % 4 == 0){printf("合数\n");}else{printf("质数\n");}system("pause");return 0;
}
调试结果:
判断5是否为质数(改善方法):
#include <stdio.h>
#include <stdlib.h>int main()
{int a, count, i;count = 0;a = 5;for (i = 2; i <= 4; i++){if (a % i == 0)count++;}if (count == 0){printf("质数\n");}else{printf("合数\n");}system("pause");return 0;
}
调试结果:
判断任意一个数是不是质数:
#include <stdio.h>
#include <stdlib.h>int main()
{int a, count, i;count = 0;scanf("%d", &a);for (i = 2; i <= a - 1; i++){if (a % i == 0)count++;}if (count == 0){printf("质数\n");}else{printf("合数\n");}system("pause");return 0;
}
调试结果:
输出一个数的所有约数,如果没有约数就是质数:
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>
#include <stdlib.h>int main()
{int a, count, i;count = 0;scanf("%d", &a);for (i = 2; i <= a - 1; i++){if (a % i == 0){count++;printf("%d ", i); //打印出约数}}if (count == 0){printf("\n质数\n");}else{printf("\n合数\n");}system("pause");return 0;
}
调试结果:
第4节 更快一点:break
判断一个正整数是否为质数:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()
{int a, count, i;count = 0;scanf("%d", &a);for (i = 2; i <= a - 1; i++){if (a % i == 0){count++;break;}}if (count == 0){printf("质数\n");}else{printf("合数\n");}system("pause");return 0;
}
调试结果:
用break语句输出1 2 3 4 5:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()
{int a, count, i;count = 0;scanf("%d", &a);for (i = 2; i <= a - 1; i++){if (a % i == 0){count++;printf("%d ", i); //打印出约数}}if (count == 0){printf("质数\n");}else{printf("合数\n");}system("pause");return 0;
}
调试结果:
第5节 continue
用continue语句打印1~100的偶数:
#include <stdio.h>
#include <stdlib.h>int main()
{int i;for (i = 1; i <= 100; i++){if (i % 2 == 1){continue;}printf("%d ", i);}printf("\n");system("pause");return 0;
}
调试结果:
第6节 逻辑挑战8:验证哥德巴赫猜想
判断一个数是否为质数:
#include <stdio.h>
#include <stdlib.h>int main()
{int k, a, b, i, count1, count2;for (k = 4; k <= 100; k = k + 2){for (a = 2; a <= k / 2; a++){//判断a是否为质数count1 = 0;for (i = 2; i <= a - 1; i++){if (a % i == 0){count1++;break;}}if (count1 == 0) //如果a为质数{b = k - a;//判断b是否为质数count2 = 0;for (i = 2; i <= b - 1; i++){if (b % i == 0){count2++;break;}}if (count2 == 0) //如果b也是质数{printf("%d = %d + %d\n", k, a, b);break; //打印这个解并跳出循环}}}}system("pause");return 0;
}
调试结果:
在4~100内验证哥德巴赫猜想并输出每个偶数的所有可能的拆分方法:
#include <stdio.h>
#include <stdlib.h>int main()
{int a, b, k, i, count1, count2;for (k = 4; k <= 100; k = k + 2){printf("%d", k);for (a = 2; a <= k / 2; a++){count1 = 0;for (i = 2; i <= a - 1; i++){if (a % i == 0)count1++;}if (count1 == 0){b = k - a;count2 = 0;for (i = 2; i <= b - 1; i++){if (b % i == 0)count2++;}if (count2 == 0)printf(" = %d + %d ", a, b);}}printf("\n");}system("pause");return 0;
}
调试结果:
第7节 逻辑挑战9:水仙花数
用三重嵌套循环来产生100~999:
#include <stdio.h>
#include <stdlib.h>int main()
{int i, j, k;for (i = 1; i <= 9; i++){for (j = 0; j <= 9; j++){for (k = 0; k <= 9; k++){printf("%d ", i * 100 + j * 10 + k);}}}printf("\n");system("pause");return 0;
}
调试结果:
在100~999中判断哪个数字是“水仙花数”(拼接法):
#include <stdio.h>
#include <stdlib.h>int main()
{int i, j, k;for (i = 1; i <= 9; i++){for (j = 0; j <= 9; j++){for (k = 0; k <= 9; k++){if (i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k){printf("%d ", i * 100 + j * 10 + k);}}}}printf("\n");system("pause");return 0;
}
调试结果:
在100~999中判断哪个数字是“水仙花数”(分割法):
#include <stdio.h>
#include <stdlib.h>int main()
{int x, a, b, c;for (x = 100; x <= 999; x++){a = x / 100;b = x / 10 % 10;c = x % 10;if (x == a * a * a + b * b * b + c * c * c)printf("%d ", x);}printf("\n");system("pause");return 0;
}
调试结果:
输入一个3位数,求这个数个位、十位和百位的数之和:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()
{int x, a, b, c, d;scanf("%d", &x);a = x / 100;b = x / 10 % 10;c = x % 10;d = a + b + c;printf("%d \n", d);system("pause");return 0;
}
调试结果:
输入范围在1~99999999的n位数,求这个n位数每一位上的数之和:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()//主函数
{int x, y = 0; //定义两个数,x代表这个输入的n位数,y代表n各个位上数之和 scanf("%d", &x); //输入一个数,将其存放到x while (x > 0) //使用while循环函数只要x>0循环一直进行 {y += x % 10; //y只要一直加x的余数,就是各个位数上的数字 x = x / 10; //由于x等号两边的数为整数则结果为整数,让x的位数递减直至x=0循环结束 }printf("%d\n", y);system("pause");return 0;
}
调试结果:
第8节 逻辑挑战10:解决奥数难题
请在两个□内填入相同的数字使得等式成立:□3 * 6528 = 3□ * 8256
#include <stdio.h>
#include <stdlib.h>int main()
{int i;for (i = 1; i <= 9; i++){if ((i * 10 + 3) * 6528 == (30 + i) * 8256)printf("%d\n", i);}system("pause");return 0;
}
调试结果:
请问A、B、C、D、E(5个互不相同的整数)分别为多少时,ABCD*E=DCBA:
#include <stdio.h>
#include <stdlib.h>int main()
{int a, b, c, d, e;for (a = 0; a <= 9; a++){for (b = 0; b <= 9; b++){for (c = 0; c <= 9; c++){for (d = 0; d <= 9; d++){for (e = 0; e <= 9; e++){if (a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e){if ((a * 1000 + b * 100 + c * 10 + d) * e == (d * 1000 + c * 100 + b * 10 + a)){printf("%d%d%d%d\n", a, b, c, d);printf("* %d\n", e);printf("----\n");printf("%d%d%d%d\n", d, c, b, a);}}}}}}}system("pause");return 0;
}
调试结果:
用1~6自然数组成一个三角形并让这个三角形三条边上数字之和相等:
#include <stdio.h>
#include <stdlib.h>int main()
{int a, b, c, d, e, f, sum = 0;for (a = 1; a <= 6; a++){for (b = 1; b <= 6; b++){for (c = 1; c <= 6; c++){for (d = 1; d <= 6; d++){for (e = 1; e <= 6; e++){for (f = 1; f <= 6; f++){if (a + b + c == c + d + e){if (c + d + e == e + f + a){if (a + b + c == a + f + e){if (a != b && a != c && a != d && a != e && a != f&& b != c && b != d && b != e && b != f&& c != d && c != e && c != f&& d != e && d != f&& e != f){sum++;printf("\n\n");printf(" %d\n\n", a);printf(" %d %d\n\n", b, f);printf("%d %d %d\n\n", c, d, e);printf("--------------------------\n");}}}}}}}}}}printf("\nsum = %d \n", sum);system("pause");return 0;
}
调试结果:
14 65 2 3--------------------------15 63 4 2--------------------------16 52 4 3--------------------------16 43 2 5--------------------------23 56 1 4--------------------------24 63 5 1--------------------------25 34 1 6--------------------------26 41 5 3--------------------------32 65 4 1--------------------------34 52 6 1--------------------------35 41 6 2--------------------------36 21 4 5--------------------------41 56 3 2--------------------------42 36 1 5--------------------------43 25 1 6--------------------------45 12 3 6--------------------------51 36 2 4--------------------------52 43 6 1--------------------------53 14 2 6--------------------------54 21 6 3--------------------------61 34 5 2--------------------------61 25 3 4--------------------------62 14 3 5--------------------------63 12 5 4--------------------------sum = 24
请按任意键继续. . .
第9节 逻辑挑战11:猜数游戏
限定6次猜0~99的整数:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main()
{int a, b, sum;sum = 6;srand((unsigned)time(NULL));a = rand() % 100;while (1){sum--;scanf("%d", &b);if (b > a)printf("大了,还剩下%d次机会,请继续\n", sum);if (b < a)printf("小了,还剩下%d次机会,请继续\n", sum);if (b == a){printf("恭喜你,答对了!\n");break;}if (sum == 0){printf("已经没有机会了,请重新开始吧!\n");break;}}system("pause");return 0;
}
调试结果:
生成一个1~20000000的随机数:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>int main()
{int a, b, n, i = 1;srand((int)time(NULL));while (i > 0){int a = rand() % 4000 + 1;int b = rand() % 5000 + 1;int n = a * b;printf("%d\n", n);i--;}system("pause");return 0;
}
调试结果:
第10节 逻辑挑战12:你好坏,关机啦
启动关机程序与6次猜数问题结合:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include<time.h>int main()
{int a, b, sum;sum = 6;srand((unsigned)time(NULL));a = rand() % 100;while (1){sum--;scanf("%d", &b);if (b > a)printf("大了,还剩下%d次机会,请继续\n", sum);if (b < a)printf("小了,还剩下%d次机会,请继续\n", sum);if (b == a){printf("恭喜你,答对了!\n");break;}if (sum == 0){printf("没有机会了,系统将在50秒后关机\n");system("shutdown -s -t 50");break;}}system("pause");return 0;
}
调试结果:
啊哈C语言 第五章 【代码】【习题答案】相关推荐
- c语言第六章数组题库及详解答案,C语言第六章数组习题答案.doc
C语言第六章数组习题答案 第六章 数组 习题答案 一.选择题 12345678910CDBDCDDBCC11121314151617181920DBBCDDCDBD212223242526272829 ...
- c语言定义int 输出4386,大学C语言第五章课后习题参考程序
考试,二级C语言备考 第五章课后习题参考程序 5.1 编写程序,求100-2000之间所有3的倍数之和,当和大于1000时结束. (参考答案:900) #include int main() { in ...
- 疯狂java讲义第五章课后习题答案
1.编写一个学生类,提供name.age.gender.phone.address.cmail成员变量,且为每个成员变量提供 seter.geter方法.为学生类提供默认的构造器和带所有成员变量的构造 ...
- C语言 第五章 选择结构 答案,c语言第五章 选择结构程序设计(习题册答案).doc
第五章 选择结构程序设计 基础练习(A) 一.填空题 1.关系表达式的运算结果是 逻辑 值.C语言没有逻辑型数据,以 1 代表"真",以 0代表"假". 2.逻 ...
- 2022SDUT知到/智慧树----C语言第五章测试题解(答案~)大家看清顺序
第五章测试-答案已加粗 1[判断题](10分) 在C语言中,逻辑运算符"&&"比"||"的优先级高(). A.对 B.错 参考答案:A 2[判断 ...
- 《Python语言程序设计》王恺 机械工业出版社 第五章课后习题答案
第五章 序列.集合和字典 5.8 课后习题 (1)Python 中,通过列表中的 index 方法可以根据指定值查找第一个匹配的列表元素 的位置. (2)Python 中,通过列表中的 insert ...
- 材料力学Ⅰ(第六版)第五章课后习题答案
第一章 绪论 第二章 拉伸.压缩与剪切 第三章 扭转 第四章 弯曲内力 第五章 弯曲应力 第六章 弯曲变形 第七章 应力和应变分析强度理论 第八章 组合变形 第九章 压杆稳定
- 操作系统--第五章 虚拟存储器--习题答案
第五章 操作系统第四版课后的全部习题答案,学习通作业答案. 说明:操作系统其他章节的习题答案也在此"操作系统"专栏. 1.试说明设备控制器的组成. 答:由设备控制器与处理机的接口, ...
- c语言第五章循环结构答案,C语言循环结构练习题带答案
<C语言循环结构练习题带答案>由会员分享,可在线阅读,更多相关<C语言循环结构练习题带答案(8页珍藏版)>请在人人文库网上搜索. 1.第5章循环结构程序设计练习题1.单项选择题 ...
- 【最详细】数据结构(C语言版 第2版)第五章课后习题答案 严蔚敏 等 编著
所有章节答案合集-->传送门 1.选择题 ( 1)把一棵树转换为二叉树后,这棵二叉树的形态是() . A.唯一的 B.有多种 C.有多种,但根结点都没有左孩子 D.有多种,但根结点都没有右孩子 ...
最新文章
- mac自带php7降级,MAC更新自带php版本到7.0
- [20150205]分析函数ntile.txt
- 【腾讯面试题】Docker
- C++之类模板最简单的使用
- 开源:Swagger Butler 1.1.0发布,利用ZuulRoute信息简化配置内容
- BugkuCTF-Crypto题奇怪的密码
- IoT技术架构与安全威胁
- 用DD-WRT自建计费WiFi热点
- vue实现添加购物车光标效果
- GitHub 和 gitlab 的使用
- C++实现IE缓存迭代器
- [bowen干货]-redis常用五种数据类型命令和场景描述
- 混合现实:地面高度不准确
- centos 7 JDK 环境部署
- stroj uplink
- 给的再多,不如懂我——Gif录制工具,这两个就够了
- 2022年Python笔试选择题及答案(秋招)
- android浏览器插件开发,Android浏览器插件开发.docx
- Customizing the Banner
- P42-前端基础-浮动塌陷最终解决方案