一、实验内容
实验一
实验要求:有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
代码:
# include<stdio.h> int main() { int a,b,c,d,e,f; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) for(d=0;d<=9;d++) { e=a*1000+b*100+c*10+d; f=d*1000+c*100+b*10+a; if(e==4*f) { printf("%d",e); } } return 0; }
程序运行结果:
实验二
实验要求:输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应月份的英文名称,否则输出***。
样例: 输入123, 输出6 June
输入12345,输出15 ***
代码:
# include<stdio.h> int main() { int a,b,c,sum; printf("请输入一个多位的数字 "); scanf("%d",&a); sum=0; while(1) { if(a==0) { break; } else { c=a%10; a=a/10; sum=sum+c; } } if(sum>=1&&sum<=12) { if(sum==2) { printf("%d February ",sum); } else if(sum==3) { printf("%d March ",sum); } else if(sum==4) { printf("%d April ",sum); } else if(sum==5) { printf("%d May ",sum); } else if(sum==6) { printf("%d June ",sum); } else if(sum==7) { printf("%d July ",sum); } else if(sum==8) { printf("%d August ",sum); } else if(sum==9) { printf("%d September ",sum); } else if(sum==10) { printf("%d October ",sum); } else if(sum==11) { printf("%d November ",sum); } else if(sum==12) { printf("%d December ",sum); } } else { printf("%d *** ",sum); } return 0; }
程序运行结果:
实验三
实验要求:给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
输出格式:输出满足条件的3位数,要求从小到大,每行6个整数,整数间以空格分隔,但行数不能有多余空格。
输入样例:2
输出样例:234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
代码:
#include<stdio.h> int main() { int a,b,c,d,e,f,n=0; printf("请输入一个不超过6的整数 "); scanf("%d",&a); e=a+3; for(b=a;b<=e;b++) for(c=a;c<=e;c++) for(d=a;d<=e;d++) { if(a!=b&&b!=c&&a!=c) { n=n+1; f=b*100+c*10+d; printf("%03d",f); if(n%6==0) { printf(" "); } else { printf(" "); } } } return 0; }
程序运行结果:
实验四
猜拳游戏
代码:
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int a,b; while(1) { printf("请确定是否开始,若开始请输入你出的拳:剪刀输1,石头输2,布输3,否则输入0 "); scanf("%d",&a); srand(time(NULL)); b=rand()%3+1; if(a==0) { break; } else { if(a==b) { do { printf("请重新输入 "); if(a==1&&b==2) { printf("对不起,你输了,电脑出的是石头 "); } else if(a==1&&b==3) { printf("恭喜你,你赢了,电脑出的是布 "); } else if(a==2&&b==1) { printf("恭喜你,你赢了,电脑出的是剪刀 "); } else if(a==2&&b==3) { printf("对不起,你输了,电脑出的是布 "); } else if(a==3&&b==1) { printf("对不起,你输了,电脑出的是剪刀 "); } else if(a==3&&b==2) { printf("恭喜你,你赢了,电脑出的是石头 "); } }while(a!=b); } else { if(a==1&&b==2) { printf("对不起,你输了,电脑出的是石头 "); } else if(a==1&&b==3) { printf("恭喜你,你赢了,电脑出的是布 "); } else if(a==2&&b==1) { printf("恭喜你,你赢了,电脑出的是剪刀 "); } else if(a==2&&b==3) { printf("对不起,你输了,电脑出的是布 "); } else if(a==3&&b==1) { printf("对不起,你输了,电脑出的是剪刀 "); } else if(a==3&&b==2) { printf("恭喜你,你赢了,电脑出的是石头 "); } } } } printf("将返回主菜单 "); return 0; }
程序运行结果:
二、知识点总结
- 循环结构的嵌套。
- 取余与取整的应用。
- 对多位数各位数字的求法。
- 循环的初始值应该是一个整数。
- 循环结构的三种常用形式:for循环用于已知次数的循环,while和do...while用于不知道循环次数的循环,在do...while中while后面要加;
- 在顺序结构的应用时要注意括号要成对打,和一般的格式。
- 在选择结构的应用时if一般用于情况较多时,case应用于情况较少时。
三、实验总结
- 在计算多位数的位数时应该先与10取余然后再与10取整,否则将取不到个位的数字。
- 在实验一中的千位取值应该从一开始,其他位的取值应该从0开始。
- 在实验三中循环中的初始值要唯一否则里面的循环的初值将随着改变。
- 在实验四中的括号应该成对打,否则最后会出现混乱的状况;随机函数的格式要严格按照格式进行书写。