第六次作业

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

#include<stdio.h>
int main()
{
    int x,i,a,b,c,d;
    for(x=1000;x<=9999;x++)
    {
        a=x/1000,b=x/100%10,c=x/10%10,d=x%10;
        i=a+b*10+c*100+d*1000;
        if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d&&x==i*4)
            printf("%d",x);
    }
}

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include<stdio.h>
int main()
{
    int x=0,y=0;
    char i;
    do
    {
        x+=y;
        scanf("%c",&i);
        y=i-48;
    }while(i!='\n');
    printf("%d\n",x);
    switch(x)
    {
        case 1 :printf("Jaunary");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;
        default:printf("***");
    }
}

3.给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

   输入格式:输入在一行中给出A。

   输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

#include<stdio.h>
int main()
{
    
    int x,y,z,i,a,b,c,m,n=0;
    scanf("%d",&x);
    if(x>6||x<=0)
    {
        printf("输入错误");
    }
    else
    {
        a=x+1,b=x+2,c=x+3;
        for(i=x;i<=c;i++)
        {
            for(y=x;y<=c;y++)
            {
                for(z=x;z<=c;z++)
                {
                    m=i*100+y*10+z;
                    if(i!=y&&i!=z&&y!=z)
                    {
                    printf("%d  ",m);
                    n++;
                    if(n%6==0)
                    printf("\n");
                    }
                }
            }
        }
    }
}

4,四合一

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
    int year,year1,month,sum,sum1,sum2,a,b,c,d,n,e,i,f,h,answer,result,answer1,result1,zong;
    float m;
    char Y,x,q,o,j,l;
    while(1)
    {
    printf("\n\n\n\t   \t\t***************\n\t\t\t*1,万年历     *\n\t   \t\t*2,猜价格     *\n\t   \t\t*3,自动出题器 *\n\t   \t\t*4,猜拳       *\n\t\t   \t***************\n");
    printf("请输入选择的题号:");
    scanf(" %c",&o);
    if(o=='1')
    {
        system("cls");
         printf("万年历\n");
            printf("请输入年份个月份,用空格分开。\n");
            scanf("%d%d",&year,&month);
            while(year<1900||month<1||month>12)
            {
                printf("数据错误,请重新输入。\n");
                scanf("%d%d",&year,&month);
            }
            sum1=0;
            sum2=0;
            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;
            system("cls");
            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)
            {
                zong=31;
            }        
            else if(month==4||month==6||month==9||month==11)
            {
                zong=30;
            }
            else if(month==2)    
            {
                if(year%4==0&&year%100!=0||year%400==0)
                {
                    zong=29;
                }
                else 
                {
                    zong=28;
                }
            }
            for(n=1;n<=zong;n++,h++)
            {
                printf("  %2d    ",n);
                if(h%7==0)
                {
                printf("\n");        
                }
            }
            printf("\n");    
        }
        else if(o=='2')
        {
            system("cls");
            printf("猜价格\n");
            a=10;
            while(1) 
            {
                srand(time(NULL));
                result=rand()%100+1;
                printf("请输入你猜的价格,范围是1~100,你有10次机会。\n");
                 for(i=1,a=9;i<=10;i++,a--)
                 {
                    scanf("%d",&answer);
                    while(answer<=0||answer>100)
                    {
                        printf("输入错误。\n");
                        scanf("%d",&answer);
                    }
                    if(answer==result)
                    {
                        printf("恭喜你猜对了!\n");
                        break;
                    }
                    else if(answer>result)
                    {
                        printf("很遗憾,你猜高了。\n",a);    
                    }
                    else if(answer<result)
                    {
                        printf("很遗憾,你猜低了。\n",a);    
                    } 
                 }
                 if(answer!=result)
                 {
                 printf("很遗憾,正确价格为%d。\n",result);
                  }
                 printf("继续下一轮游戏吗?Y()y)orN(n)。\n");
                 fflush(stdout);
                 scanf(" %c",&l);
            if(l=='y'||l=='Y')
            {
                continue;
               }
               else   
            printf("谢谢参与。\n");
            break;
            }    
    }
    else if(o=='3')
    {
        system("cls");
         printf("自动出题器\n");
            c=0,d=0,n=0;
            printf("本程序将随机出五道四则运算题,范围为1~100,如果是除法运算则求出商和余数。\n");
            while(1)
            {
                i=1;
                d=0;
                while(i<=5)
                {
                    srand(time(NULL));
                    f=rand()%4+1;
                    a=rand()%100+1;
                    b=rand()%100+1;
                    switch(f)
                    {
                        case 1:printf("%d+%d=?",a,b);
                                result=a+b;
                                printf("本题为加法运算,请输入你的答案。\n");
                                scanf("%d",&answer);
                                if(answer==result) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d+%d=%d。\n",a,b,result);
                                }
                                break;    
                        case 2:printf("%d-%d=?",a,b);
                                result=a-b;
                                printf("本题为减法运算,请输入你的答案。\n");
                                scanf("%d",&answer);
                                if(answer==result) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d-%d=%d。\n",a,b,result);
                                }    
                                break;    
                        case 3:printf("%d*%d=?",a,b);
                                result=a*b;    
                                printf("本题为乘法运算,请输入你的答案。\n");
                                scanf("%d",&answer);
                                if(answer==result) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d*%d=%d。\n",a,b,result);
                                }
                                break;
                        case 4:printf("%d/%d=?",a,b);
                                result=a/b;
                                result1=a%b;
                                printf("本题为除法运算,请分别出入商和余数,用空格分隔开。\n");
                                scanf("%d%d",&answer,&answer1);
                                if(answer==result&&answer1==result1) 
                                {
                                    printf("你很棒,作对了!\n");
                                    c++;
                                    d++;
                                }
                                else
                                {
                                    printf("很遗憾,%d/%d=%d余%d。\n",a,b,result,result1);
                                }
                                break;                  
                    }    
                    i++;
                    n++;    
                }
                m=c/5.0;
                printf("本次你一共做对了%d道题,正确率为%.2f%%。\n",d,m*100);
                printf("继续吗?Y(y)orN(n)。\n");
                fflush(stdout);
                scanf(" %c",&l);
                if(l=='y'||l=='Y')
                {
                    continue; 
                }
                else
                break;
            }
            m=(float)c/n;
            printf("你一共做对了%d道题,正确率为%.2f%%。\n",c,m*100);
    }
    else if(o=='4')
    {
        system("cls");
        printf("猜拳游戏\n");
            n=1,d=0,e=0,f=0;
            do
            {
                printf("第%d轮对决。\n",n);
                printf("该你出拳了,请选择:1.石头 2.剪刀 3.布\n");
                scanf("%d",&a);
                while(a<1||a>3)
                {
                    printf("输入错误,请重新输入。\n");
                    scanf("%d",&a);
                }
                switch(a)
                {
                    case 1:printf("你出石头,"); break;
                    case 2:printf("你出剪子,"); break;
                    case 3:printf("你出布,"); break;                
                }
                srand(time(NULL));
                b=rand()%3+1;
                switch(b)
                {
                    case 1:printf("电脑出石头。\n"); break;
                    case 2:printf("电脑出剪子。\n"); break;
                    case 3:printf("电脑出布。\n"); break;                
                }
                if(a==b) 
                {
                    printf("平局!\n");
                    d++;
                }
                else if(a==1&&b==2||a==2&&b==3||a==3&&b==1)
                {
                    printf("你赢了!\n");
                    e++;
                }
                else 
                {
                    printf("你输了。\n");
                    f++;
                }
                n++;
                printf("继续下一轮游戏吗?Y(y)orN(n)。\n");
                scanf(" %c",&q);
            }while(q=='Y'||q=='y');
            printf("对决战况:\n");
            printf("对决次数:%d  平局:%d  你得分:%d  电脑得分:%d  \n",n-1,d,e,f);
            if(e==f)
            {
                printf("最终结果:平局\n"); 
            }
            else if(e>f)
            {
                printf("最终结果:你赢!\n"); 
            }
            else
            {
                printf("最终结果:电脑赢!\n"); 
            }
    }
    else
    {
        printf("输入错误\n");
    }
    printf("是否继续?(Y/N)");
    scanf(" %c",&j);
    if(j=='y'||j=='Y')
    {
        system("cls");
        continue; 
    }
        system("cls");
    break;
}
}

现在才想起来来不及写总结了......

 

posted on 2016-11-13 22:53  wxc123  阅读(241)  评论(2编辑  收藏  举报

导航