练习1-1
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int qian; srand(time(NULL));//seed qian = rand()%7;//generate 0~6 random value switch(qian) { case 0: puts("大吉");break; case 1: puts("中吉");break; case 2: puts("小吉");break; case 3: puts("吉");break; case 4: puts("末吉");break; case 5: puts("凶");break; case 6: puts("大凶");break; } return 0; }练习1-2
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int qian; int i = 0; srand(time(NULL));//seed qian = rand()%7;//generate 0~6 random value while((qian>=4)&&(i<2))//calculate again { qian = rand()%7; i++; } switch(qian) { case 0: puts("大吉");break; case 1: puts("中吉");break; case 2: puts("小吉");break; case 3: puts("吉");break; case 4: puts("末吉");break; case 5: puts("凶");break; case 6: puts("大凶");break; } return 0; }练习1-3
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int obj; int opp = 1; int guess; //int i = 0; srand(time(NULL));//seed obj = rand()%1999-999;//generate -999~999 random value do { printf("input the number you guess(-999~999):"); scanf("%d",&guess); opp++; if(guess>obj) printf("a smaller value needed!\n"); else if(guess<obj) printf("a larger value needed!\n"); }while((guess!=obj)&&opp!=10); if(guess==obj) printf("Congratulations!\n"); else printf("Game Over!\n"); return 0; }练习1-4
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int obj; int mode; int guess; srand(time(NULL)); obj = (rand()%333 + 1)*3; printf("input game mode(0/1)\n"); scanf("%d",&mode); if(mode==0) { printf("input the number you guess:"); scanf("%d",&guess); if(guess%3!=0) printf("game over!"); else if(guess!=obj) printf("game over!"); else printf("bingo!"); } else { int i=0; printf("input the number you guess:"); scanf("%d",&guess); while((i<10)&&(guess!=obj)) { printf("input the number you guess:"); scanf("%d",&guess); i++; } if(guess!=obj) printf("game over!"); else printf("bingo!"); } return 0; }练习1-5
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int main(void) { int a; int b; int tmp; int guess; int obj; int iopp = 1; int opp; srand(time(NULL)); a = rand(); b = rand(); if(a>b) { tmp = b; b = a; a = tmp; } obj = rand()%(b-a) + a; printf("guess between %d and %d\n",a,b); do { opp = pow(2.0,iopp); iopp++; }while(opp < (b - a)); do { printf("opptunity left %d\n",iopp); printf("input the number you guess:"); scanf("%d",&guess); if(guess > obj) printf("smaller number needed!\n"); else if(guess < obj) printf("larger number needed!\n"); else printf("bingo!"); iopp--; }while((iopp!=0)&&(guess!=obj)); }练习1-6
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int main(void) { int level; int a; int b; int tmp; int guess; int obj; int iopp = 1; int opp; printf("select level\n1...1~9\n2...1~99\n3...1~999\n4...1~9999\n"); scanf("%d",&level); switch(level) { case 1: a = 1;b = 9;break; case 2: a = 1;b = 99;break; case 3: a = 1;b = 999;break; case 4: a = 1;b = 9999;break; } srand(time(NULL)); obj = rand()%(b - a + 1) + a; printf("guess between %d and %d\n",a,b); do { opp = pow(2.0,iopp); iopp++; }while(opp < (b - a)); do { printf("opptunity left %d\n",iopp); printf("input the number you guess:"); scanf("%d",&guess); if(guess > obj) printf("smaller number needed!\n"); else if(guess < obj) printf("larger number needed!\n"); else printf("bingo!"); iopp--; }while((iopp!=0)&&(guess!=obj)); printf("game over!"); }练习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 %4d\n", i + 1, num[i], 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; for(stage = 0;stage<MAX_STAGE;stage++) { printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage); scanf("%d", &no); num[stage] = no; /* 把读取的值存入数组 */ if (no > ans) printf("\a再小一点。\n"); else if (no < ans) printf("\a再大一点。\n"); else 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 %4d\n", i + 1, num[i], num[i] - ans); return 0; }