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

第六次作业

1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。

#include <stdio.h>
int main()
{
    int a,c;
    for(a=1000;a<=9999;a++)
    {
        c=a%10*1000+(a/10)%10*100+(a%1000)/100*10+a/1000;
        if(a==4*c)
        {
            printf("%d\n",a);
        }
    }
     return 0;
}

技术分享

2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***。

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include <stdio.h>
int main()
{
    int a,sum=0,x,y;
    printf("请输入一个数字\n");
    scanf("%d",&a);
    while(a>0)
    {
        x=a/10;
        y=a%10;
        sum=sum+y;
        a=x;
    }
    if(sum<=12&&sum>0)
    {
        switch(sum)
        {
            case 1 : printf("January\n");
                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;
        }
    }
    else
    {
        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,b,c,d,e,f;
    printf("请输入一个不大于6的正整数\n");
    scanf("%d",&a);
    system("CLS");
    printf("输入的数字为%d\n",a);
    if(a>6||a<0)
    {
        printf("输入的数字有误\n");
    }
    else
    {
        for(b=a;b<=(a+3);b++)                    /*百位数定义*/ 
        {
            for(c=a;c<=(a+3);c++)               /*十位定义*/ 
            {
                for(d=a;d<=(a+3);d++)          /*个位定义*/ 
                {
                    if(b!=c&&c!=d&&b!=d)
                    {
                        e=b*100+c*10+d;
                        printf("%d ",e);
                        f++;
                        if(f%6==0)
                        {
                            printf("\n");
                        }
                    }
                }
            }
        }
    }
    return 0;
} 

技术分享技术分享

 

 

 

万年历

#include <stdio.h>
int main()
{
    int year,month,day,a,b,c,sum,m,m2,sum2,q,t,x;
    printf("请输入年月,中间用空格分开\n");
    while(a!=1)
    {
        scanf("%d%d",&year,&month);
        if((month<1||month>12)||year<1900)
        {
            printf("输入的时间有误,请重新输入\n");
            continue;
        }
            else
        {
            break;
        }
    }
    system("CLS");               /*清屏*/ 
    day=0;                                /*1900年到输入年数的天数*/ 
    for(b=1900;b<=year;b++)
    {
        if((year%4==0&&year%100!=0)||(year%400==0))  /*闰年判断方法*/
        {
            day=day+366;
        }
        else
        {
            day=day+365;
        }
    }
    sum2=0;                                  /*多余月份天数,m代表月份2*/ 
    for(m=1;m<=month-1;m++)
    {
        if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
        {
            sum2=sum2+31;
        }
        else if(m==4||m==6||m==9||m==11)
        {
            sum2=sum2+30;
        }
        else if((year%4==0&&year%100!=0)||(year%400==0))  /*闰年二月份天数不同*/ 
        {
            sum2=sum2+29;
        }
        else
        {
            sum2=sum2+28;
        }
    }
        sum=day+sum2;                                /*所有的天数*/ 
        q=sum%7;                                /*计算月份中几号是星期几*/ 
        printf("%d年%d月\n",year,m);
    if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)  /*大月份天数*/
        {
            m2=31;                                /*m2为月份天数*/ 
        } 
        else if(m==4||m==6||m==9||m==11)
        {
            m2=30;
        }
        else if(((year%4==0&&year%100!=0)||(year%400==0))&&month==2)      /*闰年二月份天数*/
         {
             m2=29;
        }
        else 
        {
            m2=28;
        }
        printf("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日\n");
        if(q==6)
        {
        for(t=1;t<=m2;t++)
        {
            printf("%d\t",t);
            if((q+t+1)%7==0)
            {
                printf("\n");
            }
        }    
        }
        else
        {
            for(x=0;x<=q;x++)
        {
            printf("\t");
        }
        for(t=1;t<=m2;t++)
        {
            printf("%d\t",t);
            if((q+t+1)%7==0)
            {
                printf("\n");
            }
        }
        }
    return 0;
 } 

技术分享

 

 技术分享

知识点总结

1、必要时可以用死循环,再用break语句跳出

2、“system(“CLS”)”代表:清屏

3、程序较长时用“/*....*/”标示

4、注意中间值的使用

 

 

实验总结

1、程序不能直接写,应该有大概运行思路

2、嵌套语句的使用

3、注意用标示,防止长代码忘记代码目的。

 

第六次作业