作业,6
1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
#include<stdio.h> int main() { int a,ge,shi,bai,qian,b; for(a=1000;a<=9999;a++) { qian=a/1000; bai=(a%1000)/100; shi=(a%100)/10; ge=a%10; b=qian+bai*10+shi*100+ge*1000; if(b==(a*4)) { printf("%d",a); } } return 0; }
2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***
#include <stdio.h> int main() { int i=0,sum=0; printf("输入一个正数:"); while(1) { scanf("%d",&i); if(i<=0) { printf("输入错误,重新输入\n"); continue; } else { break; } } while(i>0) { sum=sum+(i%10); i=i/10; } printf("%d ",sum); if(sum==1) printf("january"); else if(sum==2) printf("february"); else if(sum==3) printf("march"); else if(sum==4) printf("aoril"); else if(sum==5) printf("may"); else if(sum==6) printf("june"); else if(sum==7) printf("july"); else if(sum==8) printf("august"); else if(sum==9) printf("september"); else if(sum==10) printf("october"); else if(sum==11) printf("november"); else if(sum==12) printf("december"); else printf("***"); return 0; }
3.给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
#include<stdio.h> #include<stdlib.h> int main() { int a,b,c,d,e,f,i=0; printf("输入一个一位整数,要求在1-6中间\n"); while(1) { scanf("%d",&a); if(a>=7||a<=0) { printf("输入错误,重新输入\n"); continue; } else system("CLS"); break; } printf("输入的数字是%d\n",a); for(b=a;b<(a+4);b++) for(c=a;c<(a+4);c++) for(d=a;d<(a+4);d++) { f=b*100+c*10+d; if(b!=c&&c!=d&&b!=d) { i++; printf("%d ",f); if(i%6==0) { printf("\n"); } } } return 0; }
附加题
有16根火柴,可以拼出多少个形如“A+B=C”的等式,A、B、C是用火柴棍拼出的整数,且为一位数,输出该等式形式。
注意: 1. 加号与等号各自需要两根火柴棍 2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. 16根火柴棍必须全部用上
#include<stdio.h> int main() { int a,b,d,e,f,g; char c; for(a=0;a<=9;a++) for(d=0;d<=9;d++) { e=a+d; if(a==1) { b=2; } if(a==2||a==3||a==5) { b=5; } if(a==4) { b=4; } if(a==6||a==9||a==0) { b=6; } if(a==7) { b=3; } if(a==8) { b=7; } if(d==1) { f=2; } if(d==2||d==3||d==5) { f=5; } if(d==4) { f=4; } if(d==6||d==9||d==0) { f=6; } if(d==7) { f=3; } if(d==8) { f=7; } if(e==1) { g=2; } if(e==2||e==3||e==5||e==17) { g=5; } if(e==4||e==11) { g=4; } if(e==6||e==9||e==0||e==14) { g=6; } if(e==7) { g=3; } if(e==8||e==12||e==13||e==15) { g=7; } if(e==16) { g=8; } if(e==18) { g=9; } if(g+f+b==12) { printf("%d+%d=%d ",a,d,e); } } return 0; }
#include<stdio.h> int main() { int a,b,d,e,f,g; char c; for(a=0;a<=9;a++) for(d=0;d<=9;d++) { e=a+d; if(a==1) { b=2; } if(a==2||a==3||a==5) { b=5; } if(a==4) { b=4; } if(a==6||a==9||a==0) { b=6; } if(a==7) { b=3; } if(a==8) { b=7; } if(d==1) { f=2; } if(d==2||d==3||d==5) { f=5; } if(d==4) { f=4; } if(d==6||d==9||d==0) { f=6; } if(d==7) { f=3; } if(d==8) { f=7; } if(e==1) { g=2; } if(e==2||e==3||e==5||e==17) { g=5; } if(e==4||e==11) { g=4; } if(e==6||e==9||e==0||e==14) { g=6; } if(e==7) { g=3; } if(e==8||e==12||e==13||e==15) { g=7; } if(e==16) { g=8; } if(e==18) { g=9; } if(g+f+b==12) { printf("%d+%d=%d ",a,d,e); } } return 0; }
小项目
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int B=0,year,month,e1,a1=0,b1,c1,d1,i1,j1,sum,sum1,sum2,a2,b2,c2,d2,e2=0,i2,ia,ib,ic,key,rem,answer,answer1,i4,h4,x4,z4,sum4=0,q4,b3=0,c3,d3,e3=0,f3,g3=0,h3=0; char sign,A,C,f2,j4,a3; float y4,w4; while(B!=1) { A='0';B=0;C='0';year=0;month=0;e1=0;a1=0,b1=0;c1=0;d1=0;i1=0;j1=0;sum=0;sum1=0;sum2=0;a2=0;b2=0;c2=0;d2=0;e2=0;f2='0';i2=0;ia=0;ib=0;ic=0;key=0;rem=0;answer=0;answer1=0;i4=0;j4=0;h4=0;x4=0;z4=0;sum4=0;q4=0;a3=0;b3=0;c3=0;d3=0;e3=0;f3=0;g3=0;h3=0; y4=0;w4=0; system("CLS"); printf("\n*******************************************************\n"); printf("*******************************************************\n"); printf("*** 综合小项目练习 ***\n"); printf("*** ================ ***\n"); printf("*** ***\n"); printf("*** 1,万年历 ***\n"); printf("*** 2,猜数字游戏 ***\n"); printf("*** 3,自动出题器 ***\n"); printf("*** 4,石头剪刀布游戏 ***\n"); printf("*** 5,退出 ***\n"); printf("*** ***\n"); printf("*******************************************************\n"); printf("*******************************************************\n"); printf("输入功能代码(1--5)\n"); scanf(" %c",&A); switch(A) { case '1': system("CLS"); { while(a1!=1) { printf("请输入年份月份和日期,用空格隔开\n"); scanf("%d%d",&year,&month); if(month>12||month<1) { printf("输入错误,请重新输入\n"); continue; } else { a1=1; } } system("CLS"); for(i1=1900,sum1=0;i1<=year-1;i1++) { if((i1%4==0&&i1%100!=0)||(i1%400==0)) { sum1=sum1+366; } else { sum1=sum1+365; } } for(j1=1,sum2=0;j1<=month-1;j1++) { if(j1==1||j1==3||j1==5||j1==7||j1==8||j1==10||j1==12) { sum2=sum2+31; } else if(j1==4||j1==6||j1==9||j1==11) { sum2=sum2+30; } else { if((i1%4==0&&i1%100!=0)||(i1%400==0)) { sum2=sum2+29; } else { sum2=sum2+28; } } } sum=sum1+sum2+1; c1=sum%7; /*本月第一天是周几*/ printf("%d年%d月\n",year,month); printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n"); if(month==4||month==6||month==9||month==11) /*小月份*/ { e1=30; } else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) /*大月份*/ { e1=31; } else if(((year%4==0&&year%100!=0)||(year%400==0))&&month==2) /*闰年二月份*/ { e1=29; } else /*平年二月份*/ { e1=28; } for(d1=c1;d1>0;d1--) { printf(" "); } for(b1=1;b1<=e1;b1++) { printf(" %-2d ",b1); if((b1+c1)%7==0) { printf("\n"); } } printf("\n请输入任意字符进行清屏"); scanf(" %c",&C); break; } case '2': system("CLS"); while(f2!='1') { srand(time(NULL)); a2=rand()%100+1; printf("猜一个数字在1-100之间\n",a2); for(i2=1;i2<=10;i2++) { scanf("%d",&b2); if(b2>a2) { printf("输入大了,重新输入\n"); continue; } if(b2<a2) { printf("输入小了,重新输入\n"); continue; } if(a2==b2) { printf("你猜对了"); e2=1; break; } } if(e2==1) { printf("你一共猜了%d次\n",i2); } else { printf("10次你都没有猜对,答案是%d\n",a2); } printf("是否继续下一轮?回复1退出,回复其他继续\n"); scanf(" %c",&f2); } printf("\n请输入任意字符进行清屏"); scanf(" %c",&C); break; case '3': system("CLS"); { while(j4!='1') { for(i4=1,x4=0;i4<=5;i4++) { srand(time(NULL)); ia=rand()%100+1; ib=rand()%100+1; ic=rand()%100+1; if(ic>=1&&ic<=25) { sign='+'; key=ib+ia; } if(ic>=26&&ic<=50) { sign='-'; key=ia-ib; } if(ic>=51&&ic<=75) { sign='*'; key=ia*ib; } if(ic>=76&&ic<=100) { sign='/'; key=ia/ib; rem=ia%ib; } printf("%d%c%d=\n",ia,sign,ib); if(sign=='+'||sign=='-'||sign=='*'||rem==0) { printf("请输入答案\n"); scanf("%d",&answer); if(key==answer) { printf("正确\n"); x4++; } else { printf("错误,答案为%d\n",key); } } else { printf("请输入答案,商与余数用空格分开\n"); scanf("%d%d",&answer,&answer1); if(answer==key&&answer1==rem) { printf("正确\n"); x4++; } else { printf("错误\n"); } } } y4=x4/0.05; printf("正确率为%.2f\%%,答对了%d题,继续吗?输入1退出,输入其他继续\n",y4,x4); q4++; sum4=sum4+x4; scanf(" %c",&j4); } w4=(float)(sum4)/(0.05*q4); printf("答题结束,正确率为%.2f\%%,答对了%d题\n",w4,sum4); printf("\n请输入任意字符进行清屏"); scanf("%d",&C); break; } case '4': system("CLS"); { while(a3!='1') { b3++; printf("******猜拳游戏******\n"); printf("第%d轮对决\n",b3); printf("该你出拳了,请选择:1石头 2剪刀 3布\n",b3); scanf("%d",&d3); if(d3>3||d3<1) { printf("输入错误,请重新输入\n"); continue; } else { c3=rand()%100+1; if(d3==1) { if(c3>=1&&c3<=33) { printf("电脑出石头 你出石头\n"); printf("结果:平局,加油!\n"); e3++; } else if(c3>=34&&c3<=66) { printf("电脑出剪刀 你出石头\n"); printf("结果:运气真好,你赢了!\n"); f3++; } else { printf("电脑出布 你出石头\n"); printf("结果:你输了,再来一次吧!\n"); g3++; } } if(d3==2) { if(c3>=1&&c3<=33) { printf("电脑出石头 你出剪刀\n"); printf("结果:你输了,再来一次吧!\n"); g3++; } else if(c3>=34&&c3<=66) { printf("电脑出剪刀 你出剪刀\n"); printf("结果:平局,加油!\n"); e3++; } else { printf("电脑出布 你出剪刀\n"); printf("结果:运气真好,你赢了!\n"); f3++; } } if(d3==3) { if(c3>=1&&c3<=33) { printf("电脑出石头 你出布\n"); printf("结果:运气真好,你赢了!\n"); f3++; } else if(c3>=34&&c3<=66) { printf("电脑出剪刀 你出布\n"); printf("结果:你输了,再来一次吧!\n"); g3++; } else { printf("电脑出布 你出布\n"); printf("结果:平局,加油!\n"); e3++; } } } printf("继续下一轮游戏吗?回复1退出游戏,回复其他继续游戏\n"); scanf(" %c",&a3); } printf("对战情况:\n"); printf("对战次数%d 平局次数:%d 电脑得分:%d 你得分:%d\n",b3,e3,g3,f3); if(f3>g3) { printf("你赢了"); } if(f3<g3) { printf("你输了"); } if(f3==g3) { printf("平局"); } printf("\n请输入任意字符进行清屏"); scanf("%d",&C); break; } case '5': system("CLS"); { B=1; break; } default: { printf("输入错误,重新输入"); } } } }
没啥总结的。