第六次作业

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

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

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

#include<stdio.h>
int main()
{
    int a,b=0,c,d;
    printf("请输入一个多位数字\n");
    scanf("%d",&a);
    do
    {
        c=a%10;
        d=a/10;
        b=b+c;
        a=d;
    }while(d>0);
    if(b>=1&&b<=12)
    {
       
            if(b==1)
            {
               printf("%d,January\n",b);
            }    
            else if(b==2)
            {
               printf("%d,February\n",b);
            }
            else if(b==3)
            {
               printf("%d,March\n",b);
            }
            else if(b==4)
            {
                printf("%d,April\n",b);
            }
            else if(b==5)
            {
               printf("%d,May\n",b);
            }
            else if(b==6)
            {
                printf("%d,June\n",b);
            }
            else if(b==7)
            {
                printf("%d,July\n",b);
            }
            else if(b==8)
            {
               printf("%d,August\n",b);
            }
            else if(b==9)
            {
              printf("%d,September\n",b);
            }
            else if(b==10)
            {
                printf("%d,October\n",b);
            }
            else if(b==11)
            {
                printf("%d,November\n",b);
            }
            else if(b==12)
            {
                printf("%d,December\n",b);
            }
      
    }
    else
    {
        printf("%d,***\n",b);
    }
    return 0;
}

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

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

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

#include<stdio.h>
int main()
{
    int a,b,c,d,e,f,g,i,j=0;
    printf("请输入一个不大于6的整数");
    scanf("%d",&a);
    if(a>=1&&a<=6)
    {
        b=a+1;
        c=a+2;
        d=a+3;
        for(i=a*100;i<=999;i++)
        {
            e=i/100;
            f=i%100/10;
            g=i%10;
            if(e!=f&&f!=g&&g!=e&&e>=a&&e<=d&&f>=a&&f<=d&&g>=a&&g<=d)
            {
                printf("%4d",i);
                j++;
                if(j%6==0)
                {
                    printf("\n");
                }
            }
        }
    }
    return 0;
} 

 

4.猜拳游戏

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int a,b,i=0,j=0,k=0,l=0;
    char x;
        do
        {    srand(time(NULL)); 
            b=rand()%3+1;
            printf("请输入你的选择:1。剪刀2。拳头3。布\n");
            scanf("%d",&a);
            while(a<=0||a>3)
            {
                printf("error\n");
                scanf("%d",&a);
            }
            if(a==b)
            {
                printf("平局\n");
                l++;
            }
            else if((a==1&&b==2)||(a==2&&b==3)||(a==3&&b==1))
            {
                printf("你输了\n");
                if(b==1)
                {
                    printf("电脑出的剪刀");
                }
                else if(b==2)
                {
                    printf("电脑出的石头");
                }
                else if(b==3)
                {
                    printf("电脑出的布");
                }
                j++;
            }
            else if((a==2&&b==1)||(a==3&&b==2)||(a==1&&b==3))
            {
                printf("你赢了\n");
                if(b==1)
                {
                    printf("电脑出的剪刀");
                }
                else if(b==2)
                {
                    printf("电脑出的石头");
                }
                else if(b==3)
                {
                    printf("电脑出的布");
                }
                k++;
            }
            i++;
            printf("请问你是否要继续“y”or“n”");
                scanf(" %c",&x);
        }while(x=='y'||x=='Y');
            printf("一共进行了%d次,平局了%d次,输了%d次,赢了%d次",i,l,j,k);
        return 0;
}

实验总结:如果情况很多的话,用switch比用if要简单一些,也更清楚。

             当你进行循环的时候,要考虑,什么语句应该放在外面,什么放在里面。

             do  while和while一个实现执行后判断,一个实现判断后执行

             

 

posted @ 2016-11-13 22:36  *翾*  阅读(208)  评论(1编辑  收藏  举报