第六次实验作业

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

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

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include<stdio.h>
int main()
{
    long int a,b,c=0;
    printf("请输入一个多位数
");
    scanf("%ld",&a);
    while(a>0)
    {
        b=a%10;
        a=a/10;
        c+=b;
    }
    printf("%ld
",c);
    if(c>12)
    {
        printf("***
");
    }
    else if(c==1)
    {
        printf("January
");
    }
    else if(c==2)
    {
        printf("February
");
    }
    else if(c==3)
    {
        printf("March
");
    }
    else if(c==4)
    {
        printf("February
");
    }
    else if(c==5)
    {
        printf("Mary
");
    }
    else if(c==6)
    {
        printf("June
");
    }
    else if(c==7)
    {
        printf("July
");
    }
    else if(c==8)
    {
        printf("August
");
    }
    else if(c==9)
    {
        printf("September
");
    }
    else if(c==10)
    {
        printf("October
");
    }
    else if(c==11)
    {
        printf("Novernber
");
    }
    else if(c==12)
    {
        printf("December
");
    }
    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的正整数
");
    scanf("%d",&a);
    if(a<1||a>6)
    {
        printf("输入错误
");
    }
    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||c==d||b==d)
            {
                continue;
            }
            else
            {
                e=b*100+c*10+d;
                printf("%d ",e);
                f++;
                if(f%6==0)
                {
                    printf("
");
                }
            }
        }
    }
    return 0;
} 

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

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int a,b,c;
    char c1;
    do
    {
        printf("猜商品的价格
");
    
        srand(time(NULL));
        a=rand()%100+1;
        for(c=1;c<=10;c++)
        {
            scanf("%d",&b);
            if(b>a)
            {
                printf("错误,猜大了!
");
            }
            else if(b<a)
            {
                printf("错误,猜小了!
");
            }
            else
            {
                printf("正确!
");
                printf("一共猜了%d次
",c);
                break;
            }
        }
        printf("正确的价格为%d",a);
        printf("你还要继续吗?yes(Y)orno(N)");
        scanf(" %c",&c1);
        continue;
    }while(c1=='Y');    
    return 0;
} 

知识点总结:

1.continue语句的功能是结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。

2.continue语句只能用在循环语句中。

3.continue一般是与if语句一起使用。

4.continue语句只是结束本次循环,而不是终止整个循环的执行;而break语句则是结束整个循环过程,不在判断执行循环的条件是否成立。

5.goto语句的功能是无条件转移语句。

实验总结:

1.do...while语句后边一定要加分号。

2.while、for语句后边一定不要加分号。

3.switch语句中不要忘记break。

原文地址:https://www.cnblogs.com/wy97/p/6044956.html