第六次作业
1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
#include <stdio.h> int main() { int number1,number2,i,j,m,n; for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(m=0;m<=9;m++)for(n=0;n<=9;n++) { if(i!=j&&i!=m&&i!=n&&j!=m&&j!=n&&n!=m) { number1=i*1000+j*100+m*10+n; number2=n*1000+m*100+j*10+i; if(number1==number2*4) { printf("%d\n",number1); } } } return 0; }
2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***。
样例: 输入123, 输出 6 June
输入12345,输出 15 ***
#include <stdio.h> int main() { int num,sum; printf("请输入一个多位数\n"); scanf("%d",&num); sum=0; while(num>0) { sum=sum+num%10; num=num/10; }
printf(“%d”,num); switch(sum) { case 1:printf("january\n"); break; case 2:printf("february\n"); break; case 3:printf("march\n"); break; case 4:printf("april\n"); break; case 5:printf("may\n"); break; case 6:printf("june\n"); break; case 7:printf("july\n"); break; case 8:printf("august\n"); break; case 9:printf("september\n"); break; case 10:printf("october\n"); break; case 11:printf("november\n"); break; case 12:printf("december\n"); break; default:printf("***\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,i,j,m,num=0,time=0; printf("请输入一个不超过6的正整数\n"); scanf("%d",&a); for(i=a;i<=a+3;i++) for(j=a;j<=a+3;j++) for(m=a;m<=a+3;m++) { num=i*100+j*10+m; if(i!=j&&i!=m&&m!=j) { printf("%04d",num); time++;
} if(time%6==0&&time!=0)
{ printf("\n"); } } return 0; }
实验总结:1.for可以多个连用。
2.合理利用switch case使结构更加清晰明了。
3.多加的练习可以使循环结构用的更加好。
4.第三题刚刚看到的时候比较蒙,后来也能够明白了,所以说还是需要理解。
知识点总结:1.while(1)或者while(ture)都是无限循环。
2.最大公约数缩写为gcd。
3.赋值运算符的优先级<关系运算符。