• 第六次


    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.赋值和相等一个是=一个是==

  • 相关阅读:
    PAIP HTML的调试与分析工具
    paip.输入法编程一级汉字1000个
    paip.DEVSUIT ADMIN 初次使用时出现两个LICENSE提醒
    int main(int argc,char *argv[])中参数的意义
    深入理解C语言小记
    曲线拟合的最小二乘法
    C51 bit和sbit的区别
    曲线拟合的最小二乘法
    有关verilog truncated value with size 32 to match size of target警告的处理
    C51 bit和sbit的区别
  • 原文地址:https://www.cnblogs.com/jg666666/p/6055454.html
Copyright © 2020-2023  润新知