明解C语言 中级篇 第一章答案
练习1-1
#include <stdio.h> #include<stdlib.h> int main() { srand(time(0)); int anw = rand() % 7; printf("您的签运是:"); switch (anw) { case 0:printf("大吉"); break; case 1:printf("吉"); break; case 2:printf("小吉"); break; case 3:printf("吉"); break; case 4:printf("末吉"); break; case 5:printf("凶"); break; case 6:printf("大凶"); break; } }
练习1-2
#include <stdio.h> #include<stdlib.h> int main() { srand(time(0)); int anw = rand() %10; printf("您的签运是:"); switch (anw) { case 0: case 1:printf("大吉"); break; case 2: case 3:printf("吉"); break; case 4: case 5: case 6:printf("小吉"); break; case 7:printf("末吉"); break; case 8:printf("凶"); break; case 9:printf("大凶"); break; } }
练习1-3
/* 猜数游戏(其五:显示输入记录)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> #define MAX_STAGE 12 /* 最多可以输入的次数 */ int main(void) { int i; int stage; /* 已输入的次数 */ int no; /* 读取的值 */ int ans; /* 目标数字 */ int num[MAX_STAGE]; /* 读取的值的历史记录 */ srand(time(NULL)); /* 设定随机数的种子 */ ans = rand() % 1998-999; /* 生成-999~999的随机数 */ printf("请猜一个-999~999的整数。\n\n"); stage = 0; do { printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage); scanf("%d", &no); num[stage++] = no; /* 把读取的值存入数组 */ if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans && stage < MAX_STAGE); if (no != ans) printf("\a很遗憾,正确答案是%d。\n", ans); else { printf("回答正确。\n"); printf("您用了%d次猜中了。\n", stage); } puts("\n--- 输入记录 ---"); for (i = 0; i < stage; i++) printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans); return 0; }
练习1-4
/* 猜数游戏(其五:显示输入记录)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> #define MAX_STAGE 12 /* 最多可以输入的次数 */ int main(void) { int i; int stage; /* 已输入的次数 */ int no; /* 读取的值 */ int ans; /* 目标数字 */ int num[MAX_STAGE]; /* 读取的值的历史记录 */ srand(time(NULL)); /* 设定随机数的种子 */ ans = 3*(rand() %333)+3; /* 生成3~999之间3的倍数的随机数 */ printf("请猜一个3~999的而且是3的倍数整数。\n\n"); stage = 0; do { printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage); scanf("%d", &no); while(no % 3 != 0) { printf("请输入3的倍数:"); scanf("%d", &no); } num[stage++] = no; /* 把读取的值存入数组 */ if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans && stage < MAX_STAGE); if (no != ans) printf("\a很遗憾,正确答案是%d。\n", ans); else { printf("回答正确。\n"); printf("您用了%d次猜中了。\n", stage); } puts("\n--- 输入记录 ---"); for (i = 0; i < stage; i++) printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans); return 0; }
/* 猜数游戏(其五:显示输入记录)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> #define MAX_STAGE 12 /* 最多可以输入的次数 */ int main(void) { int i; int stage; /* 已输入的次数 */ int no; /* 读取的值 */ int ans; /* 目标数字 */ int num[MAX_STAGE]; /* 读取的值的历史记录 */ srand(time(NULL)); /* 设定随机数的种子 */ ans = 3*(rand() %333)+3; /* 生成3~999之间3的倍数的随机数 */ printf("请猜一个3~999的而且是3的倍数整数。\n\n"); stage = 0; do { printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage); scanf("%d", &no); if (no % 3 != 0) { break; } num[stage++] = no; /* 把读取的值存入数组 */ if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans && stage < MAX_STAGE); if (no != ans) printf("\a很遗憾,正确答案是%d。\n", ans); else { printf("回答正确。\n"); printf("您用了%d次猜中了。\n", stage); } puts("\n--- 输入记录 ---"); for (i = 0; i < stage; i++) printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans); return 0; }
练习1-5
/* 猜数游戏(其五:显示输入记录)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> int main(void) { int i; int stage; /* 已输入的次数 */ int no; int cnt=0;/* 读取的值 */ int d1, d2, ans; /* 目标数字 */ srand(time(NULL)); /* 设定随机数的种子 */ d1 = rand(); d2 = rand(); int max = (d2 > d1) ? d2 : d1; int min = (d2 < d1) ? d2 : d1; ans = (rand() % (max -min))+min; int x = (max - min); printf("请猜一个%d~%d的整数\n\n", min, max); while (x > 50) { x /= 2; cnt++; } cnt += 3; int num[128]; /* 读取的值的历史记录 */ stage = 0; do { printf("还剩%d次机会。是多少呢:", cnt- stage); scanf("%d", &no); num[stage++] = no; /* 把读取的值存入数组 */ if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans && stage < cnt); if (no != ans) printf("\a很遗憾,正确答案是%d。\n", ans); else { printf("回答正确。\n"); printf("您用了%d次猜中了。\n", stage); } puts("\n--- 输入记录 ---"); for (i = 0; i < stage; i++) printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans); return 0; }
练习1-6
/* 猜数游戏(其五:显示输入记录)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> #define MAX_STAGE 6 /* 最多可以输入的次数 */ int main(void) { int i; int stage; /* 已输入的次数 */ int no; /* 读取的值 */ int ans; /* 目标数字 */ int num[MAX_STAGE]; /* 读取的值的历史记录 */ int choice, d; srand(time(NULL)); printf("请选择难度等级(1)1~9 (2)1~99 (3)1~999 (4)1~9999:"); scanf("%d", &choice); if (choice == 1){ ans = rand() % 8 + 1; d = 9; } if (choice == 2) { ans = rand() % 98 + 1; d = 99; } if (choice == 3) { ans = rand() % 998 + 1; d = 999; } if (choice == 4) { ans = rand() % 9998 + 1; d = 999; } printf("请猜一个1~%d的整数。\n\n",d); stage = 0; do { printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage); scanf("%d", &no); num[stage++] = no; /* 把读取的值存入数组 */ if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans && stage < MAX_STAGE); if (no != ans) printf("\a很遗憾,正确答案是%d。\n", ans); else { printf("回答正确。\n"); printf("您用了%d次猜中了。\n", stage); } puts("\n--- 输入记录 ---"); for (i = 0; i < stage; i++) printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans); return 0; }
练习1-7
/* 猜数游戏(其五:显示输入记录)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> #define MAX_STAGE 10 /* 最多可以输入的次数 */ int main(void) { int i; int stage; /* 已输入的次数 */ int no; /* 读取的值 */ int ans; /* 目标数字 */ int num[MAX_STAGE]; /* 读取的值的历史记录 */ srand(time(NULL)); /* 设定随机数的种子 */ ans = rand() % 1000; /* 生成0~999的随机数 */ printf("请猜一个0~999的整数。\n\n"); stage = 0; do { printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage); scanf("%d", &no); num[stage++] = no; /* 把读取的值存入数组 */ if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans && stage < MAX_STAGE); if (no != ans) printf("\a很遗憾,正确答案是%d。\n", ans); else { printf("回答正确。\n"); printf("您用了%d次猜中了。\n", stage); } puts("\n--- 输入记录 ---"); for (i = 0; i < stage; i++) { printf(" %2d : %4d ", i + 1, num[i]); if(num[i] - ans==0) printf("%4d\n", num[i] - ans); else { printf("%+4d\n", num[i] - ans); } } return 0; }
练习1-8
/* 猜数游戏(其五:显示输入记录)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> #define MAX_STAGE 10 /* 最多可以输入的次数 */ int main(void) { int i; int stage; /* 已输入的次数 */ int no; /* 读取的值 */ int ans; /* 目标数字 */ int num[MAX_STAGE]; /* 读取的值的历史记录 */ srand(time(NULL)); /* 设定随机数的种子 */ ans = rand() % 1000; /* 生成0~999的随机数 */ printf("请猜一个0~999的整数。\n\n"); stage = 0; i = 0; for(i=0;i<MAX_STAGE;i++){ printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage); scanf("%d", &no); num[stage++] = no; /* 把读取的值存入数组 */ if (no > ans) { printf("\a再小一点。\n"); } if (no < ans){ printf("\a再大一点。\n"); } if(ans==no){ break; } } if (no != ans) printf("\a很遗憾,正确答案是%d。\n", ans); else { printf("回答正确。\n"); printf("您用了%d次猜中了。\n", stage); } puts("\n--- 输入记录 ---"); for (i = 0; i < stage; i++) { printf(" %2d : %4d ", i + 1, num[i]); if(num[i] - ans==0) printf("%4d\n", num[i] - ans); else { printf("%+4d\n", num[i] - ans); } } return 0; }
相关推荐
lpkwxl 2020-06-17
Android开发CXY 2020-11-11
RealJianyuan 2020-06-14
pbyanglove 2020-06-09
徐建岗网络管理 2020-06-09
fengjing81 2020-06-06
lynjay 2020-06-02
wujingsheng0 2020-05-16
吴小伟 2020-05-09
sillion 2020-05-03
xiaobater 2020-05-01
ericasadun 2020-04-26
lynjay 2020-04-26
choupiaoyi 2020-04-26
tydldd 2020-04-23