第六次作业

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

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

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

#include<stdio.h>
int main ()
{
    int a,b,c=0,d,e,g,f;
    printf("输入一串数字
");
    scanf("%d",&a);
    while(1)
    {
        m=a/10;
b
=a%10; c=c+b; a=a/10; if(b==0&&m==0) { break; } } if(c<=0||c>=13) { printf("%d ",c); printf("*** "); } switch(c) { case 1: printf("%d ",c); printf(" January"); break; case 2: printf("%d ",c); printf(" February"); break; case 3: printf("%d ",c); printf(" March"); break; case 4: printf("%d ",c); printf(" April"); break; case 5: printf("%d ",c); printf(" May"); break; case 6: printf("%d ",c); printf(" June"); break; case 7: printf("%d ",c); printf(" July"); break; case 8: printf("%d ",c); printf(" August"); break; case 9: printf("%d ",c); printf(" September"); break; case 10: printf("%d ",c); printf(" October"); break; case 11: printf("%d ",c); printf(" November"); break; case 12: printf("%d ",c); printf(" December"); break; } return 0; }

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

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a,b,c,d,e,f,r,t,y,u,g=0;
    scanf("%d",&a);
    if(a>=7)
    {
        printf("输入错误
");
        exit(0);
    }
    c=a+4;
    for(b=a;b<c;b++)
    {
        for(e=a;e<c;e++)
        {
           for(f=a;f<c;f++)
           {
               r=f;
               t=e;
               y=b;
              if(r==t||t==y||r==y)
              {
                      continue;
              }
                u=y*100+t*10+r;
                ++g;
              if(g%6!=0)
                {
                    printf("%d ",u);
                }
              if (g%6==0)
              {
                    printf("%d
",u);
              }
           }
        }
    }
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,d,e,f,g,q;
    for(a=0;a<=9;a++)
    {
        for(b=0;b<=9;b++)
        {
            switch(a)
            {
                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;
            }
            switch(b)
            {
                case 0:d=6;    break;
                case 1:d=2;    break;
                case 2:d=5;    break;
                case 3:d=5;    break;
                case 4:d=4;    break;
                case 5:d=5;    break;
                case 6:d=6;    break;
                case 7:d=3;    break;
                case 8:d=7;    break;
                case 9:d=6;    break;
            }
            g=a+b;
                switch(g)
            {
                case 0:q=6;    break;
                case 1:q=2;    break;
                case 2:q=5;    break;
                case 3:q=5;    break;
                case 4:q=4;    break;
                case 5:q=5;    break;
                case 6:q=6;    break;
                case 7:q=3;    break;
                case 8:q=7;    break;
                case 9:q=6;    break;
            }
            f=q+c+d;
            if(g/10!=0)
            {
                continue;
            }
            if(f==12)
{ printf(
"%d+%d=%d ",b,a,g); } } } return 0;
7.综合小练习
# include <stdio.h>
# include<time.h>
# include <stdlib.h>
int main()
{
    int a,b,c,d,e,f=0,h,j,m=0,n=0,g=0;
    float q,k;
    char z,x;
    do
    {
        g=0;
        for(d=1,f=0;d<=5;d++)
     {
     srand(time(NULL));
      a=rand()%100+1;
      b=rand()%100+1;
      c=rand()%10+1;
      if(c>=1&&c<=3)
      {
          z='+';
          printf("%d+%d=?",a,b);
                            f=a+b;
                          printf("输入你的答案
");
                          scanf("%d",&e);
                          
                          if(f==e)
                          {
                              printf("正确
"); g++;
                          }
                          else
                          {
                              printf("错误
");
                          }
      }
      if(c>=4&&c<=6)
      {
          z='-';
          printf("%d-%d=?",a,b);
                          f=a-b;
                          printf("输入你的答案
");
                          scanf("%d",&e);
                          
                          if(f==e)
                          {
                              printf("正确
"); g++;
                          }
                          else
                          {
                              printf("错误
");
                          }
      }
      if(c>=7&&c<=8)
      {
          z='*';
           printf("%d*%d=?",a,b);
                          printf("输入你的答案
");
                          scanf("%d",&e);
                          f=a*b;
                          if(f==e)
                          {
                              printf("正确
"); g++;
                          }
                          else
                          {
                              printf("错误
");
                          }
      }
      if(c>=9&&c<=10)
      {
          z='/';
            printf("%d/%d=?",a,b);
                          printf("输入你的答案商和余数空格分开
");
                          scanf("%d%d",&e,&j);
                          f=a/b;
                          h=a%b;
                          if(f==e&&h==j)
                          {
                              printf("正确
"); g++;
                          }
                          else
                          {
                              printf("错误
");
                          }
      }
       }
      m=m+5;
      n=n+g;
      k=(float)g/5*100;
      {
      printf("你本次做对%d次,正确率%.2f%%
",g,k);
      }
      printf("是否继续Y(or)N
");
      scanf(" %c",&x);
    }while(x=='Y');
       q=(float)n/m*100;
       printf("全部答对%d次,正确率%.2f%%",n,q);
       return 0;
  } 


 


 

知识点总结:

在写程序是对于程序进行逻辑分析,选择适当的结构顺序,各种顺序可以套用,循环结构在复杂的程序中经常应用,循序结构是最简单的,之后是选择结构,(自己认为的);

实验总结:

1.有时候程序出现问题,然而自己的想法却觉得没错的话,可以重新写一遍这个代码,

2.读清题目的要求,有时不仔细看清就写往往使麻烦程度增大,

3.在程序写完运行编译出现错误时往往是自己的不仔细,有时是没有加分号或者声明变量,

4.在想不出的时候打草稿有时是解决问题的方法,

5.倔强,死扣,在不会或者搞不出来的时候硬想,一天弄不出来,问呗。

原文地址:https://www.cnblogs.com/saber114567/p/6040960.html