猜数字游戏是令游戏机随机产生一个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;
}