• 第六次作业


    一、实验内容   

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

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

      

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

      样例: 输入123,    输出 6     June

                输入12345,输出 15   ***

    #include<stdio.h>
    int main()
    {
    	int i=0,sum=0;
    	printf("请输入一个正数:
    ");
    	while(1)
    	{
    		scanf("%d",&i);
    		if(i<=0)
    		{
    			printf("输入错误,重新输入:
    ");
    			continue;
    		}
    		else
    		{
    			break;
    		}
    	}
    	while(i>0)
    	{
    		sum=sum+(i%10);
            i=i/10;
    	}
    	printf("%d",sum);
    	if(sum==1)
    	{
    		printf("January");
    	}
    	else if(sum==2)
    	{
    		printf("February");
    	}
    	else if(sum==3)
    	{
    		printf("March");
    	}
    	else if(sum==4)
    	{
    		printf("April");
    	}
    	else if(sum==5)
    	{
    		printf("May");
    	}
    	else if(sum==6)
    	{
    		printf("June");
    	}
    	else if(sum==7)
    	{
    		printf("July");
    	}
    	else if(sum==8)
    	{
    		printf("August");
    	}
    	else if(sum==9)
    	{
    		printf("September");
    	}
    	else if(sum==10)
    	{
    		printf("October");
    	}
    	else if(sum==11)
    	{
    		printf("November");
    	}
    	else if(sum==12)
    	{
    		printf("December");
    	}
    	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,b,c,d,e,f,i=0;
    	printf("输入一个整数,要求在1-6之间:
    ");
    	while(1)
    	{
    		scanf("%d",&a);
    		if(a>=7||a<=0)
    		{
    			printf("输入错误,重新输入:
    ");
    			continue;
    		}
    		else
    		{
    			system("CLS");
    			break;
    		}
    	}
    		printf("输入的数字是%d:
    ",a);
    		for(b=a;b<(a+4);b++)
    			for(c=a;c<(a+4);c++)
    				for(d=a;d<(a+4);d++)
    				{
    					if(b!=c&&c!=d&&b!=d)
    					{
    f=b*100+c*10+d; printf("%d",f); i++; if(i%6==0) { printf(" "); } } } return 0; }

      

    4. 万年历、看商品猜价格、自动出题器、猜拳游戏。(完成个人选定的题目)

    猜拳游戏

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    int main()
    {
    	char gamer;
    	int computer;
    	int result,score=0;
    	while(1)
    	{
    		printf("这是一个猜拳的小游戏,请你输入你要出的拳。
    ");
    		printf("A:剪刀
    B:石头
    C:布
    D:不玩
    ");
    		scanf(" %c",&gamer);
    		switch(gamer)
    		{
    		    case 65:
    			case 97:
    			gamer=4;
    			break;
    			case 66:
    			case 98:
    			gamer=7;
    			break;
    			case 67:
    			case 99:
    			gamer=10;
    			break;
    			case 68:
    			case 100:
    			return 0;
    			default:
    			printf("你的选择为%c,选择错误,退出。
    ",gamer);
    			getchar();
    			system("CLS");
    			return 0;
    			break;
    		}
    		computer=rand()%3;//获取0~2的随机数
    		result=(int)gamer+computer;
    		printf("电脑出");
    		switch(computer)
    		{
    		   case 0:printf("剪刀
    ");
    			   break;
    		   case 1:printf("石头
    ");
    			   break;
    		   case 2:printf("布
    ");
    			   break;
    		}
    		printf("你出");
    		switch(gamer)
    		{
               case 4:printf("剪刀
    ");
    			   break;
    		   case 7:printf("石头
    ");
    			   break;
    		   case 10:printf("布
    ");
    			   break;
    		}
    		if(result==6||result==7||result==11)
    		{
    			printf("你赢了。
    ");
    			score++;
    		}
    		else if(result==5||result==9||result==10)
    		{
                printf("你输了。
    ");
    		}
    		else
    		{
    			printf("平局。
    ");
    		}
    		printf("继续下一轮游戏吗?回复N退出游戏,回复其他继续游戏。
    ");
    		scanf(" %c",&gamer);
    		printf("对战情况:
    ");
    		printf("你得分%d",score);
    	}
    		return 0;
    } 
    

      

     二、知识点总结(对顺序结构、选择结构、循环结构做综合总结)

    1.头文件#include<math.h>,#include<stdlib.h>的使用,四位数换位的方法,个位与10求余,十百千位各除10取余。

    2.输出的格式注意,例第一题新组成的数为原来数的四倍   printf("i*4==%d ",i,new num);。

    3.编程时先判断不符的情况,强制输出,若符合就执行,表述清楚,思维清晰,例第二题的格式,注意大括号内的语句。

    4.在比较长的编程中,中间可以使用清屏语句,system("cLs");。

      三、实验总结(实验中遇到的问题及解决方法)

    1.第一道题遇到的问题还是大括号的使用,if语句的循环嵌套,以后要特别注意。

    2.第二道题是主用while语句

    3.做猜拳游戏的编程时遇到的问题比较多,然后解决是先确定电脑出拳,然后定一个值代表玩家和电脑出拳指的数值之和,再做判断,然后得分情况也出现了错误,输入的时候没有赋出值,在程序里也没循环起来,这都是要注意的地方。

  • 相关阅读:
    Codeforces Round #631 (Div. 1) B. Dreamoon Likes Sequences 题解(思维+求贡献)
    牛客练习赛66 C公因子 题解(区间gcd)
    evincevim控喜欢的pdf阅读器
    水手郑智化
    使用diskpart管理自己的分区
    Hacker's Browser
    How Browser Works
    解决vim ctags R失败的问题
    ubuntu更改登录对话框
    使用bcdedit删除多个Windows系统
  • 原文地址:https://www.cnblogs.com/mlj527/p/6057721.html
Copyright © 2020-2023  润新知