第六次作业

Posted 燕超

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六次作业相关的知识,希望对你有一定的参考价值。

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

#include<stdio.h>
int main()
{
    int a,b,c,d,i,g,k;
    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
        {
            g=a*1000+b*100+c*10+d;
            k=g*4;
            if(k==i)
            {
                printf("%d\\n",i);
            }
        }
    }
    return 0;
} 

 

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include <stdio.h>
int main()
{
    int x,sum=0,i=1,num=0;
    printf("请输入一个数:\\n");
    scanf("%d",&x);
    if(x>10)
    {
        while(i>0)
        {
            i=x%10;
            sum=sum+i;
            x=x/10;
            {
                if(x<10)
                {
                    sum=sum+x;
                    break;
                }
            }
        }
        printf("%d\\n",sum);
        switch(sum)
        {
            case 1: 
                sum=1;
                printf("January");
                break;
            case 2: 
                sum=2;
                printf("February");
                break;
            case 3: 
                sum=3;
                printf("March");
                break;
            case 4: 
                sum=4;
                printf("April");
                break;
            case 5: 
                sum=5;
                printf("May");
                break;
            case 6: 
                sum=6;
                printf("June");
                break;
            case 7: 
                sum=7;
                printf("July");
                break;
            case 8: 
                sum=8;
                printf("August");
                break;
            case 9: 
                sum=9;
                printf("September");
                break;
            case 10: 
                sum=10;
                printf("October");
                break;
            case 11: 
                sum=11;
                printf("November");
                break;
            case 12: 
                sum=12;
                printf("December");
                break;
        }
    }
    else if(x<-10)
    {
        while(i>0)
        {
            i=x%(-10);
            i=i*(-1);
            sum=sum+i;
            x=x/(-10);
            if(x>0)
            {
                sum=sum+x;
                break;
            }
        }
        printf("%d\\n",sum);
        switch(sum)
        {
            case 1: 
                sum=1;
                printf("January");
                break;
            case 2: 
                sum=2;
                printf("February");
                break;
            case 3: 
                sum=3;
                printf("March");
                break;
            case 4: 
                sum=4;
                printf("April");
                break;
            case 5: 
                sum=5;
                printf("May");
                break;
            case 6: 
                sum=6;
                printf("June");
                break;
            case 7: 
                sum=7;
                printf("July");
                break;
            case 8: 
                sum=8;
                printf("August");
                break;
            case 9: 
                sum=9;
                printf("September");
                break;
            case 10: 
                sum=10;
                printf("October");
                break;
            case 11: 
                sum=11;
                printf("November");
                break;
            case 12: 
                sum=12;
                printf("December");
                break;
        }
    }
    else if(x==0)
    {
        printf("num=0"); 
    }
    else
    {
        printf("intput error!!");
    }
    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=0,i,g,h,number; 
    printf("请输入一个数:\\n");
    scanf("%d",&A);
    for(i=A;i<=(A+3);i++)
    {
        for(g=A;g<=(A+3);g++)
        {
            for(h=A;h<=(A+3);h++)
            {
                if(i!=g&&i!=h&&g!=h) 
                {
                    number=i*100+g*10+h;
                    printf("%d ",number);
                    B++;
                    if(B%6==0)
                    {
                        printf("\\n");
                    }
                }
                else
                {
                    continue;
                }
            }
        }
    }
    return 0;
}

 

4. 万年历、看商品猜价格、自动出题器、猜拳游戏。(完成个人选定的题目)

#include <stdio.h>
int main()
{
    int DE=1,year,year1,sum,g,h,l,month,day=0,T,run,K,f=0;
    printf("请输入一个年份和月份:\\n");
    scanf("%d%d",&year,&month);
    while(DE=1)
    {
        if(year<1900||month<1||month>12)
        {
            printf("input  error!!请重新输入:\\n");
            DE=1;
        }
        else
        {
            break;
        }
        scanf("%d%d",&year,&month);
    }
    system("CLS");
    run=(year-1904)/4+1;     
    day=365*(year-1900-run)+run*366;     
    K=month-1;  
    printf("星期一\\t星期二\\t星期三\\t星期四\\t星期五\\t星期六\\t星期日\\n");                                      
    if(year%4==0&&year%100!=0||year%400==0)
    {
        switch(K)
        {
            case 0:
                sum=0;
                g=31;
                break;
            case 1:
                sum=31;
                g=29; 
                break;
            case 2:
                sum=60;
                g=31;
                break;
            case 3:
                sum=91;
                g=30;
                break;
            case 4:
                sum=121;
                g=31;
                break;
            case 5:
                sum=152;
                g=30;
                break;
            case 6:
                sum=182;
                g=31;
                break;
            case 7:
                sum=213;
                g=31;
                break;
            case 8:
                sum=244;
                g=30;
                break;
            case 9:
                sum=274;
                g=31;
                break;
            case 10:
                sum=305;
                g=30;
                break;
            case 11:
                sum=335;
                g=31;
                break;
        }
        day=day+sum;       
        T=day%7-1;           
        if(T==0) 
        {      
            for(l=1;l<=g;l++)
            {
                printf("%d\\t",l);
                f++;              
                if((f+T)%7==0)
                {
                    printf("\\n");
                }
            }
        }
        else     
        {  
            for(h=1;h<=T;h++)  
            {
                printf("\\t");
            }
            
            for(l=1;l<=g;l++) 
            {
                
                printf("%d\\t",l);
                f++;
                if((f+T)%7==0)
                {
                    printf("\\n");
                }
            }
        }
    }
    else
    {
        switch(K)
        {
            case 0:
                sum=0;
                g=31;
                break;
            case 1:
                sum=31;
                g=28; 
                break;
            case 2:
                sum=59;
                g=31;
                break;
            case 3:
                sum=90;
                g=30;
                break;
            case 4:
                sum=120;
                g=31;
                break;
            case 5:
                sum=151;
                g=30;
                break;
            case 6:
                sum=181;
                g=31;
                break;
            case 7:
                sum=212;
                g=31;
                break;
            case 8:
                sum=243;
                g=30;
                break;
            case 9:
                sum=273;
                g=31;
                break;
            case 10:
                sum=304;
                g=30;
                break;
            case 11:
                sum=334;
                g=31;
                break;
        }
    day=day+sum;       
        T=day%7;           
        if(T==0) 
        {      
            for(l=1;l<=g;l++)
            {
                printf("%d\\t",l);
                f++;              
                if((f+T)%7==0)
                {
                    printf("\\n");
                }
            }
        }
        else     
        {  
            for(h=1;h<=T;h++) 
            {
                printf("\\t");
            }
            
            for(l=1;l<=g;l++)  
            {
                
                printf("%d\\t",l);
                f++;
                if((f+T)%7==0)
                {
                    printf("\\n");
                }
            }
        }
    }
    return 0; 
}

 

 

附加题

  有16根火柴,可以拼出多少个形如“A+B=C”的等式,A、B、C是用火柴棍拼出的整数,且为一位数,输出该等式形式。

 注意:  1. 加号与等号各自需要两根火柴棍    2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. 16根火柴棍必须全部用上

  用火柴棍拼数字0-9的拼法如图所示: 

              

#include <stdio.h>
int main()
{
    int x1,x2,x3,club1,club2,club3,sum,num;
    for(x1=0;x1<=9;x1++)
    {
        switch(x1)
        {
            case 0:
                club1=6;
                break;
            case 1:
                club1=2;
                break;
            case 2:
                club1=5;
                break;
            case 3:
                club1=5;
                break;
            case 4:
                club1=4;
                break;
            case 5:
                   club1=5;
                break;
            case 6:
                club1=6;
                break;
            case 7:
                   club1=3;
                   break;
            case 8:
                   club1=7;
                   break;
            case 9:
                   club1=6;
                   break;
                    
                }
        for(x2=0;x2<=9;x2++)
        {
            switch(x2)
                {
                    case 0:
                        club2=6;
                        break;
                    case 1:
                        club2=2;
                        break;
                    case 2:
                        club2=5;
                        break;
                    case 3:
                        club2=5;
                        break;
                    case 4:
                        club2=4;
                        break;
                    case 5:
                        club2=5;
                        break;
                    case 6:
                        club2=6;
                        break;
                    case 7:
                        club2=3;
                        break;
                    case 8:
                        club2=7;
                        break;
                    case 9:
                        club2=6;
                        break;
                    
                }
            for(x3=0;x3<=9;x3++)
            {
                switch(x3)
                {
                    case 0:
                        club3=6;
                        break;
                    case 1:
                        club3=2;
                        break;
                    case 2:
                        club3=5;
                        break;
                    case 3:
                        club3=5;
                        break;
                    case 4:
                        club3=4;
                        break;
                    case 5:
                        club3=5;
                        break;
                    case 6:
                        club3=6;
                        break;
                    case 7:
                        club3=3;
                        break;
                    case 8:
                        club3=7;
                        break;
                    case 9:
                        club3=6;
                        break;
                    
                }
                sum=club1+club2+club3;
                if(sum==12&&x1+x2==x3)
                {
                    num++;
                    printf("%d+%d=%d\\n",x1,x2,x3);
                }
            }
        }
    }
    printf("%d\\n",num);
    return 0;
}

 

顺序结构:

1:在程序中较为常见,思路简单。

2:内容格式简单明了,但是对于重复输出类的程序就需要多次进行,远不如循环结构。

循环结构:

1:和顺序结构相比,处理多次输入的程序有神效。

2:循环结构固定,但是做题思路不定,导致一题N解。

3:循环结构自身也有一定的区别,for  while    do...while  ,注意使用时机。个人不喜欢用do...while

以上是关于第六次作业的主要内容,如果未能解决你的问题,请参考以下文章

第六次作业周总结

OOP第四次到第六次作业总结

第六次作业—例行报告

第六次作业psp

软件工程第六次作业 - 每周例行汇报

第六次作业