栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

将一个10进制数转化为任意进制数 && 猜拳小游戏

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将一个10进制数转化为任意进制数 && 猜拳小游戏

1.如何将一个10进制数,转化为2~16进制之间的数。且当数字>=10时,输出相对应的字母A~F

2.制作一个猜拳的小游戏

一、10进制转化为任意进制

         1.首先知道进制的转化规则------可参考博主前几篇博客

         2.只能转化2~16进制这个去别的数

          3.只给他三次输入的机会,大于直接退出程序

          代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include


void swap(int m, int n) {					//将十进制整数m 转化为n进制的数   m的范围时int型数据的范围  你的范围是2~16
	int num[33] = {0};
	int i = 0;
	char c[] = { 'A','B','C','D','E','F' };			//  >=10时依次对应 字母A~F
	while (m > 0)									//得到n进制的每个位上的数
	{
		num[i] = m % n;							
					
		++i;
		m /= n;
	}
	
	printf("其%d进制为: ",n);

	for (int j = i - 1; j >= 0; j--) {					//一次性输出  m转化为n进制 后的结果
		if (num[j] >= 10) {
			printf("%c",  c[num[j] - 10]);
		}
		else
			printf("%d", num[j]);
	}
	printf("n");
}
int main() {


	int m;					//输入的数
	int n;					//要转化为几进制
	
	while (1)
	{
		
		printf("请输入一个十进制的数:");
		scanf("%d", &m);
		
		
		int count = 0;
		do{								//输入n的值,直到n的范围不满足条件为止
			printf("请输入要转化2-16进制之间的任意整数:");
			scanf("%d", &n);
			count++;
			if (count >= 3) {			//输入次数限制,超过三次自动退出程序
				printf("你已经输入错误3次了,将在三秒后关闭,请明日再试n");
				Sleep(3000);
				exit(0);
			}
		} while (n > 16 || n < 2);
		
		swap(m, n);
		printf("转化成功nn");

	}

	return 0;
}

二、猜拳小游戏

                1.设置时间种子,生成一个随机数--------对应系统的石头、剪刀、布

                2.用户输入 石头、剪刀、布

                3.比较用户与系统的拳,并判断分出胜负

代码如下:

#include
#include        //为了设置时间函数
#include		//为了设置时间种子
#define Rock 0		//石头
#define Sci 1		//剪刀
#define Pap 2		//布


int main() {
	srand((unsigned)time(0));
	
	printf_s("ttttt*----------石头:0----------*n");
	printf_s("ttttt**---------剪刀:1---------**n");
	printf_s("ttttt***----------布:2---------***n");
	int cur = -1;
	while (1)
	{
		int sys = rand() % 3;
		


		printf_s("请输入你的拳(只能输入相对应的数字):");
		scanf_s("%d", &cur);
		if (cur < 0 || cur>2) {
			printf_s("你输入的数字有问题,请重新输入n");
			break;
		}

		if ((cur == 0 && sys == 1) ||
			(cur == 1 && sys == 2) ||
			(cur == 2 && sys == 0)) {

			printf_s("你赢了n");
		}
		else if ((cur == 0 && sys == 2) ||
			(cur == 1 && sys == 0) ||
			(cur == 2 && sys == 1)) {
			printf_s("你输了n");
		}
		else
			printf_s("平局n");

		
		printf_s("cur=%s   ", cur == 0 ? "石头" : (cur == 1) ? "剪刀" : "布");
		printf_s("sys=%sn", sys == 0 ? "石头" : (sys == 1) ? "剪刀" : "布");
	}
	return 0;

}

总结:10进制数转化为任意进制的数,首先要熟悉进制是如何转化的,以及转化的步骤,了解这些,写一个类似于这种的小程序并不难。

            猜拳游戏:重点在于生成系统的拳,并和自己输入的拳数比较

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968909.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号