作业六

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

#include<stdio.h>
int main()
{
    int a,b,c,d,e,f;
    for(a=1000;a<10000;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(4*f==a)
        {
            printf("%d",a);
        }
    }
    return 0;
}

 

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include<stdio.h>
int main()
{
    long a,b,c=0;
    printf("请输入任意一个多位的数字");
    scanf("%ld",&a);
    while(a>0)
    {
        b=a%10;
        a=a/10;
        c+=b;
    }
    printf("%ld ",c);
    switch(c)
    {
        case 1:printf("January\n");break;
        case 2:printf("February\n");break;
        case 3:printf("March\n");break;
        case 4:printf("April\n");break;
        case 5:printf("May\n");break;
        case 6:printf("June\n");break;
        case 7:printf("July\n");break;
        case 8:printf("August\n");break;
        case 9:printf("September\n");break;
        case 10:printf("October\n");break;
        case 11:printf("November\n");break;
        case 12:printf("December\n");break;
        default:printf("***\n");
    }
    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 i,m,n,a,x,z=0;
    printf("请输入不超过6的正整数");
    scanf("%d",&a);
    if(a>6||a<0)
    {
        printf("输入错误");
    }
    else
    {
        for(i=a;i<=a+3;i++)
            for(m=a;m<=a+3;m++)
                for(n=a;n<=a+3;n++)
                {
                    if(i!=m&&m!=n&&n!=i)
                    {
                        x=i*100+m*10+n;
                        printf("%d ",x);
                        z++;
                        if(z%6==0)
                        {
                            printf("\n");
                        }
                    }
                }
    }
    return 0;
}

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

第二个

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int i=0,price,guess;
    char c1;
    printf("请输入商品的价格,范围在1~100之间");
    while (c1!='\n'&&c1!='n')
    {
        srand(time(NULL));
        price=rand()%100+1;
        for(i=1;i<=10;i++)
        {
            scanf("%d",&guess);
            if(price>guess)
            {
                printf("猜小了"); 
            }
            else if(price<guess)
            {
                printf("猜大了");
            }
            else 
            {
                printf("%d",i);
                break;
             } 
        }
            if(i==10)
            {
                printf("商品的价格为%d",price);
            }
        printf("游戏继续Yes(y)还是结束No(n)");
        scanf(" %c",&c1);
        if(c1=='n')
        {
            break;
        }
        continue;
    }
    return 0;
}

知识点总结:

(1)continue语句只能用在循环语句中

(2)continue一般是与if语句一起使用

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

(4)如果是把所有的情况一一测试,筛选出符合条件的各种结果进行输出用穷举法

知识点总结:

(1)注意变量开始赋初始值

(2)注意switch case break语句的使用

(3)注意每条语句有分号

(4)注意scanf有&而printf没有&

 

posted @ 2016-11-08 21:28  计科李茹  阅读(227)  评论(2编辑  收藏  举报