第六次作业
Posted 小少
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六次作业相关的知识,希望对你有一定的参考价值。
1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
# include <stdio.h> int main() { int a,b,c,d,e,f,g; for(a=1000;a<=9999;a++) { b=a/1000; c=a%1000/100; d=a%1000%100/10; f=a%1000%100%10; if(b==c||c==d||d==f||b==d) { continue; } g=b+c*10+d*100+f*1000; g=4*g; if(g==a) { printf("%d",a); } } return 0; }
2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***
#include<stdio.h> int main () { int a,b,c=0,d,e,g,f; printf("输入一串数字\\n"); scanf("%d",&a); while(1) { m=a/10;
b=a%10; c=c+b; a=a/10; if(b==0&&m==0) { break; } } if(c<=0||c>=13) { printf("%d\\t",c); printf("***\\n"); } switch(c) { case 1: printf("%d\\t",c); printf(" January"); break; case 2: printf("%d\\t",c); printf(" February"); break; case 3: printf("%d\\t",c); printf(" March"); break; case 4: printf("%d\\t",c); printf(" April"); break; case 5: printf("%d\\t",c); printf(" May"); break; case 6: printf("%d\\t",c); printf(" June"); break; case 7: printf("%d\\t",c); printf(" July"); break; case 8: printf("%d\\t",c); printf(" August"); break; case 9: printf("%d\\t",c); printf(" September"); break; case 10: printf("%d\\t",c); printf(" October"); break; case 11: printf("%d\\t",c); printf(" November"); break; case 12: printf("%d\\t",c); printf(" December"); break; } return 0; }
3.给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
#include<stdio.h> #include<stdlib.h> int main() { int a,b,c,d,e,f,r,t,y,u,g=0; scanf("%d",&a); if(a>=7) { printf("输入错误\\n"); exit(0); } c=a+4; for(b=a;b<c;b++) { for(e=a;e<c;e++) { for(f=a;f<c;f++) { r=f; t=e; y=b; if(r==t||t==y||r==y) { continue; } u=y*100+t*10+r; ++g; if(g%6!=0) { printf("%d ",u); } if (g%6==0) { printf("%d\\n",u); } } } } 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,c,d,e,f,g,q; for(a=0;a<=9;a++) { for(b=0;b<=9;b++) { switch(a) { case 0:c=6; break; case 1:c=2; break; case 2:c=5; break; case 3:c=5; break; case 4:c=4; break; case 5:c=5; break; case 6:c=6; break; case 7:c=3; break; case 8:c=7; break; case 9:c=6; break; } switch(b) { case 0:d=6; break; case 1:d=2; break; case 2:d=5; break; case 3:d=5; break; case 4:d=4; break; case 5:d=5; break; case 6:d=6; break; case 7:d=3; break; case 8:d=7; break; case 9:d=6; break; } g=a+b; switch(g) { case 0:q=6; break; case 1:q=2; break; case 2:q=5; break; case 3:q=5; break; case 4:q=4; break; case 5:q=5; break; case 6:q=6; break; case 7:q=3; break; case 8:q=7; break; case 9:q=6; break; } f=q+c+d; if(g/10!=0) { continue; } if(f==12)
{ printf("%d+%d=%d ",b,a,g); } } } return 0;
7.综合小练习
# include <stdio.h> # include<time.h> # include <stdlib.h> int main() { int a,b,c,d,e,f=0,h,j,m=0,n=0,g=0; float q,k; char z,x; do { g=0; for(d=1,f=0;d<=5;d++) { srand(time(NULL)); a=rand()%100+1; b=rand()%100+1; c=rand()%10+1; if(c>=1&&c<=3) { z=\'+\'; printf("%d+%d=?",a,b); f=a+b; printf("输入你的答案\\n"); scanf("%d",&e); if(f==e) { printf("正确\\n"); g++; } else { printf("错误\\n"); } } if(c>=4&&c<=6) { z=\'-\'; printf("%d-%d=?",a,b); f=a-b; printf("输入你的答案\\n"); scanf("%d",&e); if(f==e) { printf("正确\\n"); g++; } else { printf("错误\\n"); } } if(c>=7&&c<=8) { z=\'*\'; printf("%d*%d=?",a,b); printf("输入你的答案\\n"); scanf("%d",&e); f=a*b; if(f==e) { printf("正确\\n"); g++; } else { printf("错误\\n"); } } if(c>=9&&c<=10) { z=\'/\'; printf("%d/%d=?",a,b); printf("输入你的答案商和余数空格分开\\n"); scanf("%d%d",&e,&j); f=a/b; h=a%b; if(f==e&&h==j) { printf("正确\\n"); g++; } else { printf("错误\\n"); } } } m=m+5; n=n+g; k=(float)g/5*100; { printf("你本次做对%d次,正确率%.2f%%\\n",g,k); } printf("是否继续Y(or)N\\n"); scanf(" %c",&x); }while(x==\'Y\'); q=(float)n/m*100; printf("全部答对%d次,正确率%.2f%%",n,q); return 0; }
知识点总结:
在写程序是对于程序进行逻辑分析,选择适当的结构顺序,各种顺序可以套用,循环结构在复杂的程序中经常应用,循序结构是最简单的,之后是选择结构,(自己认为的);
实验总结:
1.有时候程序出现问题,然而自己的想法却觉得没错的话,可以重新写一遍这个代码,
2.读清题目的要求,有时不仔细看清就写往往使麻烦程度增大,
3.在程序写完运行编译出现错误时往往是自己的不仔细,有时是没有加分号或者声明变量,
4.在想不出的时候打草稿有时是解决问题的方法,
5.倔强,死扣,在不会或者搞不出来的时候硬想,一天弄不出来,问呗。
以上是关于第六次作业的主要内容,如果未能解决你的问题,请参考以下文章