Chapter1 猜数游戏
//1-1通过if语句实现猜数游戏 #include<stdio.h> int main(){ int no; int ans = 7; printf("请猜一个0~9的整数。\n\n"); printf("是多少呢:"); scanf("%d", &no); if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); else printf("回答正确。\n"); return 0; }
//1-2通过do语句实现,猜到对为止 #include<stdio.h> int main(){ int no; int ans = 7; printf("请猜一个0~9的整数。\n\n"); do{ printf("是多少呢:"); scanf("%d", &no); if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans); printf("回答正确。\n"); return 0; }
//1-3通过while实现 #include<stdio.h> int main(){ int no; int ans = 7; printf("请猜一个0~9的整数。\n\n"); while (1) { printf("是多少呢:"); scanf("%d", &no); if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); else break; } printf("回答正确。\n"); return 0; }
//1-4生成随机数 #include<stdio.h> #include<stdlib.h> //rand()在此头文件中 int main(){ int retry; printf("在这个编程环境中能够生成0~%d的随机数。\n", RAND_MAX); //RAND_MAX 在stdlib中定义 do{ printf("\n生成了随机数%d。\n", rand()); printf("再运行一次?……(0)否(1)是:"); scanf("%d", &retry); } while (retry == 1); return 0; }
//1-5根据当前时间设立随机数种子 #include<time.h> #include<stdio.h> #include<stdlib.h> //rand()在此头文件中 int main(){ int retry; srand(time(NULL)); //根据当前时间设定随机数的种子 printf("在这个编程环境中能够生成0~%d的随机数。\n", RAND_MAX); //RAND_MAX 在stdlib中定义 do{ printf("\n生成了随机数%d。\n", rand()); printf("再运行一次?……(0)否(1)是:"); scanf("%d", &retry); } while (retry == 1); return 0; }
//1-6生成0~999的随机数 #include<time.h> #include<stdio.h> #include<stdlib.h> //rand()在此头文件中 int main(){ int no; int ans; srand(time(NULL)); //根据当前时间设定随机数的种子 ans = rand() % 1000; printf("请猜一个0~999的整数。\n\n"); do{ printf("是多少呢:"); scanf("%d", &no); if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); } while (no != ans); printf("回答正确。\n"); return 0; }
//1-7限制输入的次数 #include<time.h> #include<stdio.h> #include<stdlib.h> int main(){ int no; int ans; const int max_stage = 10; //最多可以输入的次数 int remain = max_stage; //还可以输入几次 srand(time(NULL)); ans = rand() % 1000; printf("请猜一个0~999的整数。\n\n"); do{ printf("还剩%d此机会。是多少呢:", remain); scanf("%d", &no); remain--; if(no > ans) printf("\a再小一点\n"); else if (no < ans) printf("\a再大一点\n"); } while ( no != ans && remain > 0); if (no != ans) printf("\a很遗憾,正确答案是%d\n", ans); else { printf("回答正确。\n"); printf("您用了%d此猜中了。\n", max_stage - remain); } return 0; }
//1-8显示输入记录 #include<time.h> #include<stdio.h> #include<stdlib.h> #define MAX_STAGE 10 int main(){ int i; int stage; //已输入的次数 int no; int ans; int num[MAX_STAGE]; //读取的值的历史记录 srand(time(NULL)); ans = rand() % 1000; 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 %+4d\n", i + 1, num[i], num[i] - ans); return 0; }
//1-9显示数组的元素个数和各个元素的值 #include<stdio.h> int main(){ int i; int a[] = {1,2,3,4,5}; int na = sizeof(a) / sizeof(a[10]); //元素的个数 printf("数组a的元素个数是%d \n", na); for(i = 0; i < na; i++) printf("a[%d] = %d\n", i, a[i]); return 0; }