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