第六次实验作业
1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
#include<stdio.h> int main() { int a,b,c,d,e,f; for(a=1000;a<=9999;a++) { b=a%10; c=a/10%10; d=a/100%10; e=a/1000; if(b==c||b==d||b==e||c==d||c==e||d==e) { continue; } else { f=b*1000+c*100+d*10+e; if(a==4*f) { printf("%d",a); } } } return 0; }
2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***。
样例: 输入123, 输出 6 June
输入12345,输出 15 ***
#include<stdio.h> int main() { long int a,b,c=0; printf("请输入一个多位数\n"); scanf("%ld",&a); while(a>0) { b=a%10; a=a/10; c+=b; } printf("%ld\n",c); if(c>12) { printf("***\n"); } else if(c==1) { printf("January\n"); } else if(c==2) { printf("February\n"); } else if(c==3) { printf("March\n"); } else if(c==4) { printf("February\n"); } else if(c==5) { printf("Mary\n"); } else if(c==6) { printf("June\n"); } else if(c==7) { printf("July\n"); } else if(c==8) { printf("August\n"); } else if(c==9) { printf("September\n"); } else if(c==10) { printf("October\n"); } else if(c==11) { printf("Novernber\n"); } else if(c==12) { printf("December\n"); } return 0; }
3.给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
输入格式:输入在一行中给出A。
输出格式:输出满足条件的的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; printf("请输入一个不超过6的正整数\n"); scanf("%d",&a); if(a<1||a>6) { printf("输入错误\n"); } else { for(b=a;b<a+4;b++) for(c=a;c<a+4;c++) for(d=a;d<a+4;d++) { if(b==c||c==d||b==d) { continue; } else { e=b*100+c*10+d; printf("%d ",e); f++; if(f%6==0) { printf("\n"); } } } } return 0; }
4. 万年历、看商品猜价格、自动出题器、猜拳游戏。(完成个人选定的题目)
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int a,b,c; char c1; do { printf("猜商品的价格\n"); srand(time(NULL)); a=rand()%100+1; for(c=1;c<=10;c++) { scanf("%d",&b); if(b>a) { printf("错误,猜大了!\n"); } else if(b<a) { printf("错误,猜小了!\n"); } else { printf("正确!\n"); printf("一共猜了%d次\n",c); break; } } printf("正确的价格为%d",a); printf("你还要继续吗?yes(Y)orno(N)"); scanf(" %c",&c1); continue; }while(c1=='Y'); return 0; }
知识点总结:
1.continue语句的功能是结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。
2.continue语句只能用在循环语句中。
3.continue一般是与if语句一起使用。
4.continue语句只是结束本次循环,而不是终止整个循环的执行;而break语句则是结束整个循环过程,不在判断执行循环的条件是否成立。
5.goto语句的功能是无条件转移语句。
实验总结:
1.do...while语句后边一定要加分号。
2.while、for语句后边一定不要加分号。
3.switch语句中不要忘记break。