首页 > 代码库 > 第六次作业

第六次作业

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;
    }
    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("%d ",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.赋值运算符的优先级<关系运算符。

 

第六次作业