林昊4

猜数字游戏是令游戏机随机产生一个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之间的数\n",min,max);
            scanf("%d",&guess); 
            count++;
            if(guess < a)
            {
                printf("负数无效,Game Over\n");
                exit(0);
            }
            if(guess < min||guess > max)
            {
                printf("你粗心了,请看清楚,输入的数为%d - %d\n",min,max);
                continue;
            }
            else
            {
                if(target==guess)
                {
                    printf("YOU WIN!\n",count); 
                    printf("共猜了%d次。\n",count);   
                    break;
                }
                else if(target > guess)
                {
                    min = guess;
                    printf("数字大于%d\n",guess);
                    printf("Too small\n");
                }
                else 
                {
                    max = guess;
                    printf("数字小于%d\n",guess);
                    printf("Too big\n");
                }
            }
        }
        printf("共猜了%d次。\n",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之间的数\n",min,max);
            scanf("%d",&guess);
            count++;
            if(count==b)
            {
			    printf("已达你决定猜测的游戏最大次数%d次,Game Over\n",b);
				exit(0);
            }
            if(guess < a)
            {
                printf("负数无效,Game Over\n");
                exit(0);
            }
            if(guess < min||guess > max)
            {
                printf("你粗心了,请看清楚,输入的数为%d - %d\n",min,max);
                continue;
            }
            else
            {
                if(target==guess)
                {
                    printf("YOU WIN!\n",count);
                    printf("共猜了%d次。\n",count);  
                    break;
                }
                else if(target > guess)
                {
                    min = guess;
                    printf("数字大于%d\n",guess);
                    printf("Too small\n");
                }
                else
                {
                    max = guess;
                    printf("数字小于%d\n",guess);
                    printf("Too big\n");
                }
            }
        } 
        if(count==1)
        printf ("Bingo!\n");
        if(count<=3)
        printf("Lucky you!!\n");
        if(count>3)
        printf("Good guess!!!\n");
    }
    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\n",o);
    m=(a*b)/o;
    printf("最小公倍数:%d\n",m);
    return 0;
}

  

posted @ 2016-10-09 23:36  林昊  阅读(335)  评论(2编辑  收藏  举报