第六次

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

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

  

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

#include<stdio.h>
int main()
{
	int a,m,n,sum=0;
	printf("请输入任意一个多位数字
");
	scanf("%d",&a);
    do
	{
		m=a%10;
	    n=a/10;
		sum=sum+m; 
		a=n;
	}while(n>0);
    if(sum>=1&&sum<=12)
	{
        switch(sum)
		{
		    case 1:printf("%d   January
",sum);break;
            case 2:printf("%d   February
",sum);break;
			case 3:printf("%d   March
",sum);break;
			case 4:printf("%d   April
",sum);break;
			case 5:printf("%d   May
",sum);break;
			case 6:printf("%d   June
",sum);break;
			case 7:printf("%d   July
",sum);break;
			case 8:printf("%d   August
",sum);break;
			case 9:printf("%d   September
",sum);break;
			case 10:printf("%d   October
",sum);break;
			case 11:printf("%d   November
",sum);break;
			case 12:printf("%d   December
",sum);break;	
		}
	}
	else
	{
		printf("%d   ***
",sum);
	}
	return 0;
}

  

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

   输入格式:输入在一行中给出A。

   输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

#include<stdio.h>
int main()
{
	int x,a,b,c,i,l,m,n,j=0;
	printf("请输入一个不超过6的正整数A
");
	scanf("%d",&x);
	while(x>6||x<1)
	{
		printf("error
请重新输入
");
		scanf("%d",&x);
	}
    if(x>=1&&x<=6)
	{
		a=x+1;
		b=a+1;
		c=b+1;
	}
	for(i=x*100;i<1000;i++)
	{
		l=i/100;
		m=i%100/10;
		n=i%10;
		if(l!=m&&l!=n&&m!=n&&m>=x&&m<=c&&l>=x&&l<=c&&n>=x&&n<=c)
		{
			printf("%4d",i);
			j++;
			if(j%6==0)
			{
				printf("
");
			}
		} 
	} 
	return 0;
}

  

4.猜拳游戏

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	int gamer,computer,result,a=1,b,x=0,y=0,z=0;
	char complete;
	do
	{ 
	srand(time(NULL)); 
	computer=rand()%3+1;
	printf("******猜拳游戏******
第%d轮对决
该你出拳了,请选择 1.石头 2.剪刀 3.布
",a);
	scanf("%d",&gamer);
    while(gamer<1||gamer>3)
	{
		printf("数据错误,请重新输入
"); 
		scanf("%d",&gamer); 
	}
		if(computer==1)
		{ 
		    printf("电脑出石头
");
		    switch(gamer)
		    {
			case 1:printf("平局
");x++;break;
		    case 2:printf("你输了
");z++;break;
		    case 3:printf("你赢了
");y++;break;
		    }
	    }
	    else if(computer==2)
	    {
	    	printf("电脑出剪刀
");
			switch(gamer)
		    {
			case 1:printf("你赢了
");y++;break;
		    case 2:printf("平局
");x++;break;
		    case 3:printf("你输了
");z++;break;
			} 
		}
		else if(computer==3)
		{
			printf("电脑出布
");
			switch(gamer)
		    { 
			case 1:printf("你输了
");z++;break;
		    case 2:printf("你赢了
");y++;break;
		    case 3:printf("平局
");x++;break;
		    } 
		}
	a++;
	b=a-1;
	printf("是否进行下一轮游戏,YES(y) or NO(n)
");
	scanf(" %c",&complete);
	if(complete==110||complete==78)
	{
		printf("你选择了退出游戏
对战状况:
对决次数:%d 平局次数%d 电脑得分%d 你得分%d
",b,x,z,y);
		if(z>y)
		{
			printf("最终结果:你输
");
		}
		else if(z<y)
		{
			printf("最终结果:你赢
");
		}
		else
		{
			printf("最终结果:平
");
		}
	}
	while(complete!=110&&complete!=78&&complete!=121&&complete!=89)
	{
		printf("error
请重新输入
YES(y) or NO(n)
");
		scanf(" %c",&complete);
		if(complete==110||complete==78)
	    {
	    	printf("你选择了退出游戏
对战状况:
对决次数:%d 平局次数%d 电脑得分%d 你得分%d
",b,x,z,y);
		    if(z>y)
		    {
		    	printf("最终结果:你输
");
	    	}
		    else if(z<y)
	    	{
		    	printf("最终结果:你赢
");
	    	}
		    else
		    {
		    	printf("最终结果:平
");
		    }
	    }
	}
	}while(complete==121||complete==89);
	return 0;
 } 

  

附加题

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int x,y,z,a=7,b=6,c=5,d=4,e=3,f=2,l,m,n;
	for(x=0;x<=9;x++) 
	    for(y=0;y<=9;y++)
	        for(z=0;z<=9;z++)
			    {
				if(z==x+y)  
		        {
		        	l=x;
		            m=y;
		        	n=z;
		            switch(l)
		            {
		        	case 0:l=b;break;
		        	case 1:l=f;break;
		        	case 2:l=c;break;
		        	case 3:l=c;break;
		        	case 4:l=d;break;
		        	case 5:l=c;break;
		        	case 6:l=b;break;
		        	case 7:l=e;break;
		        	case 8:l=a;break;
		        	case 9:l=b;break;
				    }
			  	    switch(m)
		            {
		        	case 0:m=b;break;
		        	case 1:m=f;break;
		        	case 2:m=c;break;
		        	case 3:m=c;break;
		        	case 4:m=d;break;
		        	case 5:m=c;break;
		        	case 6:m=b;break;
		        	case 7:m=e;break;
		        	case 8:m=a;break;
		        	case 9:m=b;break;
				    }
				    switch(n)
		            {
		        	case 0:n=b;break;
		        	case 1:n=f;break;
		        	case 2:n=c;break;
		        	case 3:n=c;break;
		        	case 4:n=d;break;
		        	case 5:n=c;break;
		        	case 6:n=b;break;
		        	case 7:n=e;break;
		        	case 8:n=a;break;
		        	case 9:n=b;break;
			    	}
				if(l+m+n==12)
					{    
						printf("%d+%d=%d ",x,y,z);
					}	
				} 
				}
	return 0;
}

  

知识点总结:

1.跳出选择语句要用stdlib.h函数,并且在语句后加exit(0);

2.跳出循环和case使用break,若是跳出一个语句使用continue

3.求一个数的每一位用穷举法先取余后除十

4.do while循环后要加分号

实验总结:

1.定义变量多了不要混乱

2.循环选择相互嵌套,要逻辑合理。

3.赋值和相等一个是=一个是==

原文地址:https://www.cnblogs.com/jg666666/p/6055454.html