• 作业6


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

    代码;

    #include<stdio.h>
    int main()
    {
        int a,b,c,d,i,e,s;
        for(i=1000;i<=9999;i++)
        {
            a=i%10;
            b=i/10%10;
            c=i/100%10;
            d=i/1000;
            if(a==b||a==c||a==d||b==c||b==d||c==d)
            {
                continue;
            }
            else
            {
                e=a*1000+b*100+c*10+d;
                s=e*4;
                if(s==i)
                {
                    printf("%d
    ",i);
                }
            }
        }
        return 0;
    } 

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

      样例: 输入123,    输出 6     June

                输入12345,输出 15   ***

    代码

    #include <stdio.h>
    int main()
    {
        int a,s=0;
        printf("请输入一个正数a
    ");
        scanf("%d",&a);
        while(1)
        {
            if(a<=0)
            {
                printf("输入错误,请重新输入");
                continue;
            }
            else
            {
                break;
            }
        }
        while(a>0)
        {
            s=s+(a%10);
            a=a/10;
        }
        switch(s)
        {
        case 1:     printf("%d january
    ",s);break;
        case 2:     printf("%d february
    ",s);break;
        case 3:     printf("%d march
    ",s);break;
        case 4:     printf("%d april
    ",s);break;
        case 5:     printf("%d may
    ",s);break;
        case 6:     printf("%d june
    ",s);break;
        case 7:     printf("%d july
    ",s);break;
        case 8:     printf("%d august
    ",s);break;
        case 9:     printf("%d september
    ",s);break;
        case 10:    printf("%d october
    ",s);break;
        case 11:    printf("%d november
    ",s);break;
        case 12:    printf("%d december
    ",s);break;
        default:    printf("%d ***",s);
        }
        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

      此题可在pta网站注册提交测试。https://pta.patest.cn/pta/test/14/exam/4/question/796

    #include<stdio.h>
    int main()
    {
        int a,b,c,d,s,i=0;
        printf("请输入一个不超过6的正整数
    ");
        scanf("%d",&a);
        if(a>6||a<=0)
        {
            printf("error");
         } 
        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 && b!=d && c!=d)
                        {
                            s=(b*100)+(c*10)+d;
                                   i++;
                            if(i%6==0)
                            {
                                printf("%d
    ",s);
                            }
                            else
                            {
                                printf("%d ",s);
                            }
                            
                        }
                    }
                }
            }     
        }
        return 0;
     } 

     

    万年历

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int year,month,a,a1=0,b1,c1,d1,i1,j1,sum,sum1,sum2;
        while(a1!=1)
        {
            printf("请输入年份月份和日期,用空格隔开
    ");
            scanf("%d%d",&year,&month);
            if(month>12||month<1)
            {
                printf("输入错误,请重新输入
    ");
                continue;
            }
            else
            {
                a1=1;
            }
        
        }
        system("CLS");
        for(i1=1900,sum1=0;i1<=year-1;i1++)
        {
            if((i1%4==0&&i1%100!=0)||(i1%400==0))
            {
                sum1=sum1+366;
            }
            else
            {
                sum1=sum1+365;
            }
        }
            for(j1=1,sum2=0;j1<=month-1;j1++)
            {
                if(j1==1||j1==3||j1==5||j1==7||j1==8||j1==10||j1==12)
                {
                    sum2=sum2+31;
                }
                else if(j1==4||j1==6||j1==9||j1==11)
                {
                    sum2=sum2+30;
                }
                else
                {
                    if((i1%4==0&&i1%100!=0)||(i1%400==0))
                    {
                        sum2=sum2+29;
                    }
                    else
                    {
                        sum2=sum2+28;
                    }
                }
            }
        sum=sum1+sum2+1;
        c1=sum%7;                    
        printf("%d年%d月
    ",year,month);
        printf("星期日   星期一   星期二   星期三   星期四   星期五   星期六
    ");
        if(month==4||month==6||month==9||month==11)    
        {
            a=30;
        }
        else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)     
        {
            a=31;
        }
        else if(((year%4==0&&year%100!=0)||(year%400==0))&&month==2)      
        {
            a=29;
        }
        else       
        {
            a=28;
        }
        for(d1=c1;d1>0;d1--)
                {
                    printf("         ");
                }
        for(b1=1;b1<=a;b1++)
            {
                printf(" %-2d      ",b1);
                if((b1+c1)%7==0)
                {
                    printf("
    ");                
                }
            }
        return 0;
    }

     知识点总结:

    1  考察for循环的使用,拆开一个整数的各个位置上的数字时用取余和除。

    2 while语句的使用和switch case语句的嵌套,case语句结束后要加; 再加break;,不能遗漏“;”

    3 for语句的使用和嵌套,for的执行情况是 内层执行一遍 外层执行一次。

    实验总结:

    1:用了一个for循环。要是想让一个长整数上的各个数字换位置,可以用到除法要商和取余要余数来配合调换。

    2:while语句不太熟,后面输出月份的时候一直是if语句没难点。改成switch语句的时候要在switch下面加大括号。

    3:for语句的嵌套,一开始最里面的for语句的if判断没弄好, 够六个换一行需要输出%d后再 。

  • 相关阅读:
    Oracle导入导出命令
    深入理解JSP/Servlet Session会话管理机制
    Weblogic domain密码的重置方法
    RPC关键要点
    Ubuntu如何配置Telnet服务器
    Win7如何解决telnet不是内部或外部命令!
    Linux系统下的文件权限
    虚拟机系统ubuntu安装VMWare Tools
    SQL模糊查询 LIKE
    Ubuntu下安装SSH
  • 原文地址:https://www.cnblogs.com/endeavor992/p/6057306.html
Copyright © 2020-2023  润新知