zoukankan      html  css  js  c++  java
  • 第六次

    一、实验内容   

    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("请输入一个数
    ");
        scanf("%d",&a);
        if(a<=0)
        {
            printf("输入错误
    ");
        }
        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的正整数
    ");
        scanf("%d",&x);
        if(x>6||x<1)
        {
            printf("输入错误
    ");
        }
        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
    ",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之间的一个数,有十次机会
    ");
            x=rand()%100+1;
            for(i=1;i<=10;i=i+1)
            {
                printf("请输入
    ");
                scanf("%d",&a);
                if(a<=0||a>=101)
                {
                    printf("输入错误
    ");
                    i=i-1;
                }
                else if(a>x)
                {
                    printf("猜大了
    ");
                }
                else if(a<x)
                {
                    printf("猜小了
    ");
                }
                else if(a=x)
                {
                    printf("猜对了,一共猜了%d次
    ",i);
                    break;
                }
                if(i==10&&a!=x)
                {
                    printf("十次都猜错了,正确答案是%d
    ",x);
                }
            }
            printf("请输入Y进行下一轮游戏,输入其他退出游戏
    ");
            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
    ",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、循环时,注意循环的边界,和循环一次计数的变量增加多少

  • 相关阅读:
    Microsoft.Office.Inter.Excel.dll在調用時可能會出現如下錯誤
    Proe 导出PDF Vb.net
    给Eclipse安装Google app engine插件
    VC++ 2013 开发windows窗体程序
    GitHub使用说明
    c# 发送邮件
    c# aes 加密解密
    sourceforge软件下载方式
    keyCode转换成值
    前端写代码自动刷新神器Browsersync
  • 原文地址:https://www.cnblogs.com/accelerator123/p/6048938.html
Copyright © 2011-2022 走看看