首页 > 代码库 > 作业6
作业6
1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的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=1;d<=9;d++)
{
e=1000*a+100*b+10*c+d;
f=1000*d+100*c+10*b+a;
if(e==4*f&&a!=b&&b!=c&&c!=d&&d!=a)
{
printf("%d和%d",e,f);
}
}
return 0;
}
2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***。
样例: 输入123, 输出 6 June
输入12345,输出 15 ***
#include <stdio.h> int main() { int a,sum=0; printf("请输入一个整数:"); scanf("%d",&a); while(a) { sum = sum+a%10; a=a/ 10; } printf("%d",sum); if(sum>12) { printf("***"); } else { switch(sum) { case 1: printf(" January");break; case 2: printf(" February"); break; case 3: printf(" March"); break; case 4: printf(" April"); break; case 5: printf(" May"); break; case 6: printf(" June"); break; case 7: printf(" July"); break; case 8: printf(" August"); break; case 9: printf(" September"); break; case 10: printf(" October"); break; case 11: printf(" November"); break; case 12: printf(" December"); break; } } 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,x,i=0; printf("请输入小于六的数字"); scanf ("%d",&x); if(x<0||x>6) { printf("输入错误"); } for(a=x;a<=x+3;a++) for(b=x;b<=x+3;b++) for(c=x;c<=x+3;c++) { if(a!=b&&b!=c&&c!=a) { d=a*100+b*10+c; i++; printf("%d ",d); if(i%6==0) { printf("\n",d); } } } return 0; }
4. 万年历、看商品猜价格、自动出题器、猜拳游戏。(完成个人选定的题目)
#include<stdio.h> int main() { int i,h,n,year,year1,month,a,sum,sum1=0,sum2=0; printf("请输入年份月份"); scanf("%d%d",&year,&month); year1=year; for(year1=year1-1;year1>=1900;year1--) { if(year1%4==0&&year1%100!=0||year1%400==0) { sum1=sum1+366; } else { sum1=sum1+365; } } for(i=1;i<month;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) { sum2=sum2+31; } else if(i==4||i==6||i==9||i==11) { sum2=sum2+30; } else if(i==2) { if(year%4==0&&year%100!=0||year%400==0) { sum2=sum2+29; } else { sum2=sum2+28; } } } sum=sum1+sum2; printf("%d年%d月\n",year,month); printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n"); switch(sum%7) { case 0:printf("\t"); h=2;break; case 1:printf("\t\t"); h=3;break; case 2:printf("\t\t\t"); h=4;break; case 3:printf("\t\t\t\t"); h=5;break; case 4:printf("\t\t\t\t\t"); h=6;break; case 5:printf("\t\t\t\t\t\t"); h=7;break; case 6:h=1; break; } if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { a=31; } else if(month==4||month==6||month==9||month==11) { a=30; } else if(month==2) { if(year%4==0&&year%100!=0||year%400==0) { a=29; } else { a=28; } } for(n=1;n<=a;n++,h++) { printf(" %2d ",n); if(h%7==0) { printf("\n"); } } return 0; }
实验知识点总结:
1.循环语句for的格式。
2.循环语句while的格式。
3.嵌套语句的使用 ,连续使用两种循环 ,和循环和if语句的连用。
实验总结:
1.许多地方都要注意字母的中英文,尤其是输入完汉字之后总是会输入全角的英文,导致最后找错很麻烦。
2.尤其要注意空格的使用 比如输出字符后面,输入字符后边 少输入空格到最后的找错也不太容易。
3.注意等于和赋值的区别 。
4.语句的使用要注意分号的使用 ,还有大括号的使用。还要注意执行的返回 ,是否结束。
5.有的程序比如第四个程序就不太明白为什么有空格就不行。
6.注意嵌套的方式以及跳出循环的位置.
7.注意题目的限制条件
作业6