#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;
}