首页 > 代码库 > 第六次

第六次

一、实验内容   

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

#include<stdio.h>
int main()
{
    int a,b,c,d,shu,huan;
    for(shu=1000;shu<=9999;shu=shu+1)
    {
        a=shu/1000;
        b=shu/100%10;
        c=shu/10%10;
        d=shu%10;
        if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)
        {
            huan=d*1000+c*100+b*10+a;
            if(shu==huan*4)
            {
                printf("原四位数是%d,新四位数是%d",shu,huan);
            }
        }
    }
    return 0;    
}

技术分享

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include<stdio.h>
int main()
{
    int a,b,c;
    printf("请输入一个数\n");
    scanf("%d",&a);
    if(a<=0)
    {
        printf("输入错误\n");
    }
    else if(a>0)
    {
        c=0;
        while(a!=0)
        {
            b=a%10;
            c=c+b;
            a=a/10;
        }
         if(c==1)
         {
             printf("January");
        }
        else if(c==2)
         {
             printf("february");
        }
        else if(c==3)
         {
             printf("March");
        }
        else if(c==4)
         {
             printf("April");
        }
        else if(c==5)
         {
             printf("May");
        }
        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("November");
        }
        else if(c==12)
         {
             printf("December");
        }
        else if(c>12)
         {
             printf("***");
        }
    }
    return 0;    
}

技术分享

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

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

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

#include <stdio.h>
int main()
{
    int x,a,b,c,d,i;
    printf("请输入一个不超过6的正整数\n");
    scanf("%d",&x);
    if(x>6||x<1)
    {
        printf("输入错误\n");
    }
    else
    {
        for(a=x;a<=x+3;a=a+1)
        {
            i=0;
            for(b=x;b<=x+3;b=b+1)
            {
                for(c=x;c<=x+3;c=c+1)
                {
                    if(a!=b&&a!=c&&b!=c)
                    { 
                        d=a*100+b*10+c;
                        i=i+1;
                        if(i!=6)
                        {
                            printf("%d ",d);
                        }
                        else
                        {
                            printf("%d\n",d);
                        }
                    }
                }
            }    
        }    
    }
 return 0;    
}

技术分享

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

#include<stdlib.h>
#include<stdio.h>
#include<time.h> 
int main()
{
    int a,x,i;
    char b;
    srand(time(NULL)) ;
    while(1)
    {
        printf("猜1-100之间的一个数,有十次机会\n");
        x=rand()%100+1;
        for(i=1;i<=10;i=i+1)
        {
            printf("请输入\n");
            scanf("%d",&a);
            if(a<=0||a>=101)
            {
                printf("输入错误\n");
                i=i-1;
            }
            else if(a>x)
            {
                printf("猜大了\n");
            }
            else if(a<x)
            {
                printf("猜小了\n");
            }
            else if(a=x)
            {
                printf("猜对了,一共猜了%d次\n",i);
                break;
            }
            if(i==10&&a!=x)
            {
                printf("十次都猜错了,正确答案是%d\n",x);
            }
        }
        printf("请输入Y进行下一轮游戏,输入其他退出游戏\n");
        fflush(stdin);
        scanf("%c",&b);
        if(b!=y&&b!=Y)
        {
            break;
        }
    }
    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根火柴棍必须全部用上

#include<stdio.h>
int main()
{
    int a,b,c,x,y,z;
    for(a=0;a<=9;a=a+1)
    {
        if(a==1)
        {
            x=2;
        }
        else if(a==2||a==3||a==5)
        {
            x=5;
        }
        else if(a==4)
        {
            x=4;
        }
        else if(a==6||a==9||a==0)
        {
            x=6;
        }
        else if(a==7)
        {
            x=3;
        }
        else if(a==8)
        {
            x=7;
        }
        for(b=0;b<=9;b=b+1)
        {
            if(b==1)
            {
                y=2;
            }
            else if(b==2||b==3||b==5)
            {
                y=5;
            }
                else if(b==4)
            {
                y=4;
            }
               else if(b==6||b==9||b==0)
            {
                y=6;
            }
                else if(b==7)
            {
                y=3;
            }
            else if(b==8)
            {
                y=7;
            }
            for(c=0;c<=9;c=c+1)
            {
                if(c==1)
                {
                    z=2;
                }
                else if(c==2||c==3||c==5)
                {
                    z=5;
                }
                else if(c==4)
                {
                    z=4;
                }
                else if(c==6||c==9||c==0)
                {
                    z=6;
                }
                else if(c==7)
                {
                    z=3;
                }
                else if(c==8)
                {
                    z=7;
                }
                if(a+b==c&&x+y+z==12)
                {
                    printf("%d+%d=%d\n",a,b,c); 
                }
            }
        }
    }
    return 0;    
}

技术分享

二、知识点总结

1、for语句、while语句和do...while语句的使用和区别

for用在知道循环次数的时候,不知道循环次数的时候用while和do...while,

do...while是必须执行一次

2、简便写法

i=i+1 → i++

a=a+5 → a+=5

3、在循环中,break是结束整个循环,continue是结束本次循环

4、不推荐使用goto语句

5、在判断一个数是否是质数时,用根号来节省运行时间

6、循环嵌套时、外层循环一次,内层完成所有循环

 

三、实验总结

1、先把数据算好,再写程序

2、一个else对应一个if

3、循环时,注意循环的边界,和循环一次计数的变量增加多少

第六次