第六次作业

Posted 迷迭香丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六次作业相关的知识,希望对你有一定的参考价值。

一、实验内容   

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

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

	}
	return 0;
}

  

 

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include<stdio.h>
int main()
{
	long long int a,sum;
	sum=0;
	printf("请输入一个多位数\\n");
	scanf("%lld",&a);
	while(a>0)
	{
		sum=sum+a%10;
		a=a/10;
	}
prntf("%d\\n"sum); if(sum>=1&&sum<=12) { switch(sum) { case 1: printf("January\\n");break; case 2: printf("February\\n");break; case 3: printf("March\\n");break; case 4: printf("April\\n");break; case 5: printf("May\\n");break; case 6: printf("June\\n");break; case 7: printf("July\\n");break; case 8: printf("August\\n");break; case 9: printf("September\\n");break; case 10: printf("October\\n");break; case 11: printf("November\\n");break; case 12: printf("December\\n");break; } } else { printf("***\\n"); } 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>
int main()
{
	int a,b,c,d,e,x;
	printf("请输入一个不超过6的正整数A\\n");
	scanf("%d",&a);
	while(1)
	{
	if(a<=0||a>6)
	{
		printf("输入错误,请重新输入\\n");
	}
	else if(a>0&&a<=6)
	{
		for(b=a;b<(a+3);b++)      
		{
			for(c=a;c<=(a+3);c++)
			{
				for(d=a;d<=(a+3);d++)
				{
					if(b!=c&&b!=d&&c!=d)
					{
						e=b*100+c*10+d;
						printf("% d",e);
						x++;
						if(x%6==0)
						{
							printf("\\n");
						}
					}
				}
			}
		}
	}
	}
	return 0;
}

  

 

 

 4、猜拳小游戏

#include<stdio.h>
#include<stdlib.h> 
#include<time.h>
int main()
{
	int computer,gamer,win,low,draw,great;
	char a;
	a=0,great=0,win=0,low=0,draw=0;
	while(1)
	{
	    computer=rand()%3+1;
		printf("欢迎来到猜拳小游戏,请输入1,2,3分别代表剪刀、石头、布\\n");
		scanf("%d",&gamer); 
		if(gamer<=0||gamer>=4)
		{
			printf("输入错误,请重新输入\\n");
		} 
		else if((gamer==1&&computer==3)||(gamer==2&&computer==1)||(gamer==3&&computer==2))
		{
			printf("你赢了\\n");
			printf("电脑输出的是",computer);
			if(computer==1){printf("剪刀\\n");}
			if(computer==2){printf("石头\\n");}
			if(computer==3){printf("布\\n");}
			win++; 
		}
		else if((gamer==1&&computer==2)||(gamer==2&&computer==3)||(gamer==3&&computer==1))
		{
			printf("你输了\\n");
			printf("电脑输出的是",computer);
		    if(computer==1){printf("剪刀\\n");}
			if(computer==2){printf("石头\\n");}
			if(computer==3){printf("布\\n");}
			low++;
		}
		else if((gamer==1&&computer==1)||(gamer==2&&computer==2)||(gamer==3&&computer==3))
		{
			printf("平局\\n");
			printf("电脑输出的是",computer);
			if(computer==1){printf("剪刀\\n");}
			if(computer==2){printf("石头\\n");}
			if(computer==3){printf("布\\n");}
			draw++;
		}
		fflush(stdin);
		printf("如果继续游戏请输入任意键,输入N结束游戏\\n");
		scanf("%c",&a);
	    if(a==\'N\')
		{
			printf("你的得分是%d,电脑的得分是%d",win,low);
			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 a,b,c,A,C,B;
	for(a=0;a<=9;a++)
	{
		for(b=0;b<=9;b++)
		{
			for(c=0;c<=9;c++)
			{
			switch(a)
			{
				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(b)
			{
				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;	
			}
			switch(c)
			{
				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(a+b==c&&A+B+C==12&&a!=b)
			{
				printf("%d+%d=%d\\n",a,b,c);
			}
			}
		}
	}
		return 0;
}

  

二、对知识点总结

1、顺序结构:程序的基本结构:(1)声明变量(2)输入(3)计算(4)输出 

2、选择结构:if单分枝形式 if else 双分支形式 和 多分支形式。

3、穷举法,把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出,并进行程序的优化,减少程序进行的复杂性。

4、程序的调试、设置断点、单步调试,利用调试工具查找程序的错误。

三、实验总结

1、注意C语言的数学问题的正确算法 如3x为3*x

2、输入的值太长时考虑字符的长度

3、注意考虑数据的合法性

4、循环的嵌套,先把最外层的进行完,在进行外层 以此类推

5、考虑系统随机给的数的范围

 

以上是关于第六次作业的主要内容,如果未能解决你的问题,请参考以下文章

第六次作业周总结

OOP第四次到第六次作业总结

第六次作业—例行报告

第六次作业psp

软件工程第六次作业 - 每周例行汇报

第六次作业