第六次作业

1.题目

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

 代码:

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

 运行结果:

2.题目:

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

 代码:

#include <stdio.h>
Int main()
{
  Int a,num,sum=0,b;
Printf(“请输入一个多位数”);
Scanf(“%d,&a”);
 if(a>=1&&a<=12)
switch(sum)
{
  case1:printf(“January
”);break;
  case2:printf(“February
”);break;
  case3:printf(“March
”);break;
  case4:printf(“April
”);break;
  case5:printf(“May
”);break;
  case6:printf(“June
”);break;
  case7:printf(“July
”);break;
  case8:printf(“August
”);break;
  case9:printf(“September
”);break;
  case10:printf(“October
”);break;
  case11:printf(“November
”);break;
  case12:printf(“December
”);break;
}
else
{printf(“***
”);}
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 A,a,b,c,d,e=0,num=0;
  printf("输入一位不超过6的整数A
");
  scanf("%d",&A);
  a=A+4;

  for(b=A;b<a;b++) 
	  for(c=A;c<a;c++)
		  for(d=A;d<a;d++)
		  {
			  if(b!=c&&c!=d&&d!=b)
			  {
				  num=100*b+10*c+d;
				  printf(" %d",num);
				  e++;
				  if(e%6==0)
				  {
					  printf("
");
				  }
			  }
		  }
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 a,b,c,x,y,z;
    for(a=0;a<=9;a=a+1)
    for(b=0;b<=9;b=b+1)
    for(c=0;c<=9;c=c+1)
    {
        switch(a)
        {
            case 0:x=6;break;
            case 1:x=2;break;
            case 2:x=5;break;
            case 3:x=5;break;
            case 4:x=4;break;
            case 5:x=5;break;
            case 6:x=6;break;
            case 7:x=3;break;
            case 8:x=7;break;
            case 9:x=6;break;
        }
        switch(b)
        {
            case 0:y=6;break;
            case 1:y=2;break;
            case 2:y=5;break;
            case 3:y=5;break;
            case 4:y=4;break;
            case 5:y=5;break;
            case 6:y=6;break;
            case 7:y=3;break;
            case 8:y=7;break;
            case 9:y=6;break;
        }
        switch(c)
        {
            case 0:z=6;break;
            case 1:z=2;break;
            case 2:z=5;break;
            case 3:z=5;break;
            case 4:z=4;break;
            case 5:z=5;break;
            case 6:z=6;break;
            case 7:z=3;break;
            case 8:z=7;break;
            case 9:z=6;break;
        }
        if(a+b==c&&x+y+z==12)
        {
            printf("%d+%d=%d  ",a,b,c); 
        }
    }
    return 0;    
}

  

运行结果:

综合小项目练习:

代码:

#include<stdio.h>
#include<time.h>
int main()
{
  int a,b,c,i,j,x,y,z;
  a=0,b=0,c=0;
  printf("输入一道四则运算题,如果是除法,计算商和余数");
  do{
  i=1;j=0;

  while(i<=5)
  srand(time(NULL));
  {
     a=rand()%4+1;
     b=rand()%100+1;
     c=rand()%100+1;
      }
switch(a)
{
  case 1:printf:("%d+%d=?",b,c);
  result=b+c;
  {
  printf("如果此道题为加法运算,输入你的答案
");
 scanf("%d",&answer);
  if(answer==result)
{printf("作对了
");
x++;
y++;
}
else {("遗憾,%d+%d=%d
",b,c,result);}
break;
  case 2:printf("%d_%d=?",b,c);
result=b_c;
{
printf("此题为减法运算题,输出答案
");
scanf("%d",&answer);
if(answer==result)
{
printf("作对了
");
x++;
y++;
}
else
{printf("遗憾,%d_%d=%d
",b,c);result=b_c;}
break;
  case 3:printf("%d*%d=?",b,c);
result=b*c;
{
printf("此题为乘法运算题,输出答案
");
scanf("%d",&answer);
if(answer==result)
{
printf("作对了
");
x++;
y++;
}
else
{printf("遗憾,%d*%d=%d
",b,c);result=b*c;}
break;
  case 4:printf("%d/%d=?",b,c);
result=b/c;
printf("此题为减法运算题,输出答案
");
printf("此题为除法,算出答案
");
scanf("%d",&answer);
if(answer==result)
{
printf("作对了
");
x++;
y++;
}
else
{printf("遗憾,%d/%d=%d余%d
",b,c);result=b_c;
break;
}
i++;
z++;
}
m=d/5.0;
{
printf("一共作对%d道题正确率%.2f%%
,d,m*100");
{printf("继续吗?YES or NO.
");
scanf("%c",&x);
}
while(x=='Y'||x=='Y');
m=(float)d
;
{
printf("一共做对%d道题,正确率%.2f%%
",c,m*100);
}
}

实验总结:

1.使用穷举法时,要仔细检查简化程序。

2.不会srand函数。

3.注意变量的准确性。

知识点总结:

1.ged最大公约数.

2.while(getchar()!=' ')   charc;

while((c=getchar())!=' ')

3.getchar 个数;scanf 码值。

4.fflush(stdin);   清缓存函数。

5.2/3.0 整除。

 

原文地址:https://www.cnblogs.com/haoran333/p/6057916.html