四合一

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
    int a,b,c,d,n,e,year,year1,month,sum,sum1,sum2,i,answer,result,f,answer1,result1,h,zong;
    float m;
    char Y,w,x,q;
    do
    {
        printf("请选择所需程序:\n");
        printf("1.万年历\n");
        printf("2.看商品猜价格\n");
        printf("3.自动出题器\n");
        printf("4.猜拳游戏\n");
        printf("0.退出\n");
        scanf("%d",&b);
        while(b<0||b>4)
        {
            printf("输入错误,请重新输入。\n");
            scanf("%d",&a);
        }
        system("cls");
        if(b==1)
        {
            printf("      万年历\n");
            printf("请输入年份个月份,用空格分开。\n");
            scanf("%d%d",&year,&month);
            while(year<1900||month<1||month>12)
            {
                printf("数据错误,请重新输入。\n");
                scanf("%d%d",&year,&month);
            }
            sum1=0;
            sum2=0;
            year1=year;
            for(year1=year1-1;year1>=1900;year1--)
            {
                if(year1%4==0&&year1%100!=0||year1%400==0)
                {
                    sum1=sum1+366;
                }
                else
                {
                    sum1=sum1+365;
                }
            }
            
            for(i=1;i<month;i++)
            {
                if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
                {
                    sum2=sum2+31;
                }
                else if(i==4||i==6||i==9||i==11)
                {
                    sum2=sum2+30;
                }
                else if(i==2)
                {
                    if(year%4==0&&year%100!=0||year%400==0)
                    {
                        sum2=sum2+29;
                    }
                    else
                    {
                        sum2=sum2+28;
                    }
                }
            }       
            sum=sum1+sum2;
            system("cls");
            printf("%d年%d月\n",year,month);
            printf("星期日:星期一:星期二:星期三:星期四:星期五:星期六\n");
            switch(sum%7)
                {
            /*1*/   case 0:printf("\t");h=2;break;
                    case 1:printf("\t\t");h=3;break;
                    case 2:printf("\t\t\t");h=4;break;
                    case 3:printf("\t\t\t\t");h=5;break;
                    case 4:printf("\t\t\t\t\t");h=6;break;
                    case 5:printf("\t\t\t\t\t\t");h=7;break;
                    case 6:h=1;break;
                } 
            if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
            {
                zong=31;
            }        
            else if(month==4||month==6||month==9||month==11)
            {
                zong=30;
            }
            else if(month==2)    
            {
                if(year%4==0&&year%100!=0||year%400==0)
                {
                    zong=29;
                }
                
                else 
                {
                    zong=28;
                }
            }
            for(n=1;n<=zong;n++,h++)
            {
                printf("  %2d    ",n);
                if(h%7==0)
                {
                printf("\n");        
                }
            }
            printf("\n");    
        }
        else if(b==2)
        {
            printf("      看商品猜价格\n");
            a=10;
            do
            {
                srand(time(NULL));
                result=rand()%100+1;
                printf("请输入你猜的价格,范围是1~100,你有10次机会。\n");
                 for(i=1,a=9;i<=10;i++,a--)
                 {
                    scanf("%d",&answer);
                    while(answer<=0||answer>100)
                    {
                        printf("输入错误,请重新输入你猜的价格,注意范围是1~100。\n");
                        scanf("%d",&answer);
                    }
                    if(answer==result)
                    {
                        printf("恭喜你猜对了,商品归你了!!!。\n");
                        goto jieshu;
                    }
                    else if(answer>result)
                    {
                        printf("很遗憾,你猜高了,请重新输入你猜的价格,你还有%d次机会。\n",a);    
                    }
                    else if(answer<result)
                    {
                        printf("很遗憾,你猜低了,请重新输入你猜的价格,你还有%d次机会。\n",a);    
                    } 
                 }
                 printf("很遗憾,你输了,正确价格为%d。\n",result);
                 jieshu: printf("继续下一轮游戏吗?Y(y)orN(n)。\n");
                 scanf(" %c",&w);
            }while(w=='y'||w=='Y');    
            printf("谢谢参与。\n");
            }
        else if(b==3)
        {
            printf("      自动出题器\n");
            c=0,d=0,n=0;
            printf("本程序将随机出五道四则运算题,范围为1~100,如果是除法运算则求出商和余数。\n");
            do
            {
                i=1;
                d=0;
                while(i<=5)
                {
                    srand(time(NULL));
                    f=rand()%4+1;
                    a=rand()%100+1;
                    b=rand()%100+1;
                    switch(f)
                    {
                        case 1:printf("%d+%d=?",a,b);
                                result=a+b;
                                printf("本题为加法运算,请输入你的答案。\n");
                                scanf("%d",&answer);
                                if(answer==result) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d+%d=%d。\n",a,b,result);
                                }
                                break;    
                        case 2:printf("%d-%d=?",a,b);
                                result=a-b;
                                printf("本题为减法运算,请输入你的答案。\n");
                                scanf("%d",&answer);
                                if(answer==result) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d-%d=%d。\n",a,b,result);
                                }    
                                break;    
                        case 3:printf("%d*%d=?",a,b);
                                result=a*b;    
                                printf("本题为乘法运算,请输入你的答案。\n");
                                scanf("%d",&answer);
                                if(answer==result) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d*%d=%d。\n",a,b,result);
                                }
                                break;
                        case 4:printf("%d/%d=?",a,b);
                                result=a/b;
                                result1=a%b;
                                printf("本题为除法运算,请分别出入商和余数,用空格分隔开。\n");
                                scanf("%d%d",&answer,&answer1);
                                if(answer==result&&answer1==result1) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d/%d=%d余%d。\n",a,b,result,result1);
                                }
                                break;                  
                    }    
                    i++;
                    n++;    
                }
                m=c/5.0;
                printf("本次你一共做对了%d道题,正确率为%.2f%%。\n",d,m*100);
                printf("继续吗?Y(y)orN(n)。\n");
                scanf(" %c",&x);
            }while(x=='Y'||x=='y');
            m=(float)c/n;
            printf("你一共做对了%d道题,正确率为%.2f%%。\n",c,m*100);
            }
        else if(b==4)
        {
            printf("      猜拳游戏\n");
            n=1,d=0,e=0,f=0;
            do
            {
                printf("第%d轮对决。\n",n);
                printf("该你出拳了,请选择:1.石头 2.剪刀 3.布\n");
                scanf("%d",&a);
                while(a<1||a>3)
                {
                    printf("输入错误,请重新输入。\n");
                    scanf("%d",&a);
                }
                switch(a)
                {
                    case 1:printf("你出石头,"); break;
                    case 2:printf("你出剪子,"); break;
                    case 3:printf("你出布,"); break;                
                }
                srand(time(NULL));
                b=rand()%3+1;
                switch(b)
                {
                    case 1:printf("电脑出石头。\n"); break;
                    case 2:printf("电脑出剪子。\n"); break;
                    case 3:printf("电脑出布。\n"); break;                
                }
                if(a==b) 
                {
                    printf("结果:平局,加油啊!\n");
                    d++;
                }
                else if(a==1&&b==2||a==2&&b==3||a==3&&b==1)
                {
                    printf("结果:运气真好!你赢了!\n");
                    e++;
                }
                else 
                {
                    printf("结果:很抱歉,你输了。\n");
                    f++;
                }
                n++;
                printf("继续下一轮游戏吗?Y(y)orN(n)。\n");
                scanf(" %c",&q);
            }while(q=='Y'||q=='y');
            printf("对决战况:\n");
            printf("对决次数:%d  平局:%d  你得分:%d  电脑得分:%d  \n",n-1,d,e,f);
            if(e==f)
            {
                printf("最终结果:平局\n"); 
            }
            else if(e>f)
            {
                printf("最终结果:你赢!\n"); 
            }
            else
            {
                printf("最终结果:电脑赢!\n"); 
            }
        }
        printf("谢谢您的使用,是否还有继续Y(y)orN(n)。\n");
        scanf(" %c",&Y);
        }while(Y=='Y'||Y=='y');
        printf("谢谢您的使用,再见。\n");
        return 0;
}

 

posted @ 2016-10-28 20:30  T.X  阅读(359)  评论(0)    收藏  举报