猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { srand(time(NULL)); while(true) { int min = 0; int max = 100; int a = 0 ; int count = 0;//次数 int target = rand()%max + 1;//产生随机数 while(true) { int guess = 0; printf("请输入%d-%d之间的数 ",min,max); scanf("%d",&guess); count++; if(guess < a) { printf("负数无效,Game Over "); exit(0); } if(guess < min||guess > max) { printf("你粗心了,请看清楚,输入的数为%d - %d ",min,max); continue; } else { if(target==guess) { printf("YOU WIN! ",count); printf("共猜了%d次。 ",count); break; } else if(target > guess) { min = guess; printf("数字大于%d ",guess); printf("Too small "); } else { max = guess; printf("数字小于%d ",guess); printf("Too big "); } } } printf("共猜了%d次。 ",count); if(count==1) printf ("Bingo!"); if(count<=3) printf("Lucky you!!"); if(count>3) printf("Good guess!!!"); } return 0; }
第二个版本让玩家控制猜测次数
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { srand(time(NULL)); while(true) { int min = 0; int max = 100; int a = 0; int b; int count = 0;//次数 int target = rand()%max + 1;//产生随机数 printf("你想玩多少次?(如果超过N次都没有猜到,则游戏结束,输入0则为无限次数):"); scanf("%d",&b); while(true) { int guess = 0; printf("请输入%d-%d之间的数 ",min,max); scanf("%d",&guess); count++; if(count==b) { printf("已达你决定猜测的游戏最大次数%d次,Game Over ",b); exit(0); } if(guess < a) { printf("负数无效,Game Over "); exit(0); } if(guess < min||guess > max) { printf("你粗心了,请看清楚,输入的数为%d - %d ",min,max); continue; } else { if(target==guess) { printf("YOU WIN! ",count); printf("共猜了%d次。 ",count); break; } else if(target > guess) { min = guess; printf("数字大于%d ",guess); printf("Too small "); } else { max = guess; printf("数字小于%d ",guess); printf("Too big "); } } } if(count==1) printf ("Bingo! "); if(count<=3) printf("Lucky you!! "); if(count>3) printf("Good guess!!! "); } return 0; }
从键盘上输入2个正整数,输出这两个数的最大公约数和最小公倍数。
#include<stdio.h> int main() { int a,b,m,i,o=1; printf("请输入:"); scanf("%d %d",&a,&b); m=a; if(a<b) { a=b; b=m; } for(i=2;i<=b;i++) { if(a%i==0&&b%i==0) o=i; } printf("最大公约数:%d ",o); m=(a*b)/o; printf("最小公倍数:%d ",m); return 0; }