zoukankan      html  css  js  c++  java
  • 作业(六)

    1.

    实验要求:

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

    实验代码:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int x,y,z;
        for(x=1000;x<=9999;x++)
        {
            y=0;
            z=x;
            while(z>0)
            {
                y=10*y+z%10;
                z=z/10;
            }
            if(x==4*y)
            {
                printf("%d",x);
            }
        }
        return 0;
    }

    实验截图:

    2.

    实验要求:

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

    样例: 输入123,    输出 6     June

              输入12345,输出 15   ***

    实验代码:

    #include<stdio.h>
    int main()
    {
        int x,m,sum=0;
        printf("请您输入一个多位数
    ");
        scanf("%d",&x);
        while(1)
        {
            m=x%10;
            x=x/10;
            sum=sum+m;
            if(x==0)
            {
                break;
            }
        }
        switch(sum)
        {
            case 1:printf("January
    ");break;
            case 2:printf("February
    ");break;
            case 3:printf("March
    ");break;
            case 4:printf("April
    ");break;
            case 5:printf("May
    ");break;
            case 6:printf("June
    ");break;
            case 7:printf("July
    ");break;
            case 8:printf("August
    ");break;
            case 9:printf("September
    ");break;
            case 10:printf("October
    ");break;
            case 11:printf("November
    ");break;
            case 12:printf("December
    ");break;
            default:printf("***
    ");break;
        }
        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>
    #include<stdlib.h>
    int main()
      {
      int x1,x2,x3,x4,a,b,c,i=0,sum;
      printf("输入样例: ");
      scanf("%d",&x1);
      if(x1<=0||x1>6)
      {
        printf("您输入有错。 ");
        exit(0);
      }
      printf("输入样例:");
      x2=x1+1;
      x3=x2+1;
      x4=x3+1;
      for(a=x1;a<=x4;a++)
        for(b=x1;b<=x4;b++)
          for(c=x1;c<=x4;c++)
          {
            if(a!=b&&b!=c&&c!=a)
            {
              sum=100*a+10*b+c;
              printf(" %d",sum);
              i++;
              if(i%6==0&&i!=0)
              {
                printf(" ");
              }
            }  
          }
       return 0;
    }

    实验截图:

     

    4

    实验要求:

    看商品猜价格

    实验代码:

    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>
    int main()
    {    
        int x,y,i;
        while(1) 
        { 
            printf("请输入您竞猜的价格
    ");
            srand(time(NULL));
            scanf("%d",&y);
            x=rand()%100+1;
            for(i=1;i<10;i++)
            {
                if(y>100||y<0)
                    {
                    printf("输入错误,请重新输入。(提示:此次已计入次数。)
    ");
                    scanf("%d",&y);
                } 
                 else
                {
                    if(x==y)
                    {
                        printf("您猜对了,商品是你的,价格就是%d元,你用了%d次。
    ",x,i);
                        break; 
                    }
                    else if(x>y)
                    {
                        printf("你猜的太小了,请您再次竞猜。
    ");
                        scanf("%d",&y);    
                    }
                    else
                    {
                        printf("你猜的太大了,请您再次竞猜。
    ");    
                        scanf("%d",&y);
                    }
                } 
            }
            if(i==10&&x!=y)
            {
                printf("您的10次机会已经全部用完,价格是%d元。很遗憾您没有猜对
    ",x);
                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根火柴棍必须全部用上

      用火柴棍拼数字0-9的拼法如图所示: 

                  

    实验代码:

    # include<stdio.h>
    int main()
    {
        int x,y,sum,a,b,c;
        printf("有16根火柴,可以拼出多少个形如“A+B=C”的等式.
    ");
         for(x=0;x<=9;x++)
        {
            for(y=0;y<=9;y++)
            {
                switch(x)
                {
                    case 0:a=6;    break;
                    case 1:a=2;    break;
                    case 2:a=5;    break;
                    case 3:a=5;    break;
                    case 4:a=4;    break;
                    case 5:a=5;    break;
                    case 6:a=6;    break;
                    case 7:a=3;    break;
                    case 8:a=7;    break;
                    case 9:a=6;    break;
                }  
                 switch(y)
                {
                    case 0:b=6;    break;
                    case 1:b=2;    break;
                    case 2:b=5;    break;
                    case 3:b=5;    break;
                    case 4:b=4;    break;
                    case 5:b=5;    break;
                    case 6:b=6;    break;
                    case 7:b=3;    break;
                    case 8:b=7;    break;
                    case 9:b=6;    break;
                }
                sum=x+y;
                switch(sum)
                {
                    case 0:c=6;    break;
                    case 1:c=2;    break;
                    case 2:c=5;    break;
                    case 3:c=5;    break;
                    case 4:c=4;    break;
                    case 5:c=5;    break;
                    case 6:c=6;    break;
                    case 7:c=3;    break;
                    case 8:c=7;    break;
                    case 9:c=6;    break;
                }
                if(x<10&&y<10&&sum<10)
                {
                    if((a+b+c)==12)
                       {
                        printf("%d+%d=%d
    ",x,y,sum);
                    }
                }
            }
        }
        return 0;
    }

    实验截图:

     

     知识点总结:

    1.利用循环编程菲薄那数列。

    2.利用穷举法计算鸡兔同笼问题。

    3.利用循环进行整数的分解,计算整数的位数以及如何利用循环将一个数逆序输出。

    4.分别利用枚举法和辗转相除法计算最大公因数。

    5.学习程序的调试,bug以及debug,调试的基本步骤,以及调试工具。

    实验总结:

    1.在循环的过程中,换行回车的位置要注意。

    2.忘记了switch的其余选项利用default字符。

    3.循环变量的赋值以及赋值位置。

    4.“=”的优先级较低,注意运用“()”。

    5.等于用“==”符号,不是“=”。

    6.忘记验证实验的合法性。

    7.在做实验前,最好做出程序框图

  • 相关阅读:
    React Native解决Android的WebView无法执行injectedJavaScript代码
    Java中BitSet使用(转)
    Java StringTokenizer分割字符串
    【git】git常用命令简介
    【细说Java】方法重载的简单介绍
    【细说Java】Java封箱拆箱的一些问题
    【Java解惑】表达式问题
    【细说Java】Java的重写与隐藏
    【细说Java】揭开Java的main方法神秘的面纱
    Maven简介
  • 原文地址:https://www.cnblogs.com/wgy774553994/p/6045475.html
Copyright © 2011-2022 走看看