当前位置: 首页 > article >正文

[蓝桥杯 2020 省 AB1] 解码


 做题前思路: 

1.因为是多组输入,又包含字符于是我们可以先定义一个char类型数组arr 

2.定义数组的长度:题目说简写(字母加数字)长度不超过100,但原来的长度可能超过100,加上小明不会将连续超过9个相同字符写成简写形式。为了防止数组越界,我们就要做好最坏的打算,假设简写字母都是9。因为我们简写形式长度最大是100,那么总长度就是50 * 9 = 450,我们定义char arr[450]的数组就不用担心越界

char arr[450] = { 0 };

3.再分别记入字母和数字的下标

int sum = 0;//记录字母下标
int num = 1;//记录数字下标

4.然后去判断是简写字母的范围,如果是数字则判断if(arr[num]>=0&&arr[num]<=9),因为不超过9个相同字符写成简写形式

while(arr[sum] != '\0')
{
	if (arr[num] >= '0' && arr[num] <= '9')
	{
		temp = arr[num] - '0';
		while (temp--)
		{
			printf("%c", arr[sum]);
		}
		sum += 2;
		num += 2;
	}

5.我们用gets输入的都是字符数字,为了转换为整形数字可以减去字符0

6.然后循环打印相应的次数就可以啦

7.sum+2,num+2找到下一个字母和数字的位置

8.因为简写的数字1会被省略

printf("%c", arr[sum]);
sum += 1;
num += 1;

9.我们直接打印字母就好了,sum+1,num+1,找到下一个字母和数字 

以下是整体的代码实现:

#include <stdio.h>
#include<string.h>
int main()
{
	char arr[450] = { 0 }, temp = 0;
	gets(arr);
	int sum = 0;//记录字母下标
	int num = 1;//记录数字下标
	while(arr[sum] != '\0')
	{
		if (arr[num] >= '0' && arr[num] <= '9')
		{
			temp = arr[num] - '0';
			while (temp--)
			{
				printf("%c", arr[sum]);
			}
			sum += 2;
			num += 2;
		}
		else
		{
			printf("%c", arr[sum]);
			sum += 1;
			num += 1;
		}
	}
	return 0;
}

 


http://www.kler.cn/a/154588.html

相关文章:

  • 【Python · PyTorch】卷积神经网络(基础概念)
  • 营销手段的变革:开源 AI 智能名片与 S2B2C 商城小程序在新趋势下的机遇与挑战
  • 游戏引擎学习第八天
  • 效率工具-tig的使用
  • MySQL:表设计
  • 新手教学系列——善用 VSCode 工作区,让开发更高效
  • 已解决AttributeError: module ‘gradio‘ has no attribute ‘outputs‘
  • Java集合类的重要性
  • 误用STM32串口发送标志位 “USART_FLAG_TXE” “USART_FLAG_TC”造成的BUG
  • GPT实战系列-大模型训练和预测,如何加速、降低显存
  • 【涨薪技术】深入接口测试之Mock技术
  • 关于STM32G0 FLASH 写入时出现PGSERR的一种处理办法
  • n个整数存放在一个一维数组A中,任选一种程序设计语言,编写一个函数,利用递归的方法,求数组中各整数的平均值
  • 状态模式-C++实现
  • 使用java批量生成Xshell session(*.xsh)文件
  • Unity对接后台和加载图片
  • 4.4-Docker bridge0详解
  • oracle FUNCTION(任意两个时间 之间的工作小时)
  • 游戏被流量攻击会有什么样的影响,该用什么样的防护方式去处理
  • 07-原型模式-C语言实现
  • 2022年9月6日 Go生态洞察:Go的漏洞管理新支持
  • 基于Cocos2D-X框架闯关游戏的设计
  • acwing算法基础之贪心--排序不等式、绝对值不等式和推公式
  • 【LeetCode热题100】【双指针】移动零
  • Asp.Net Core Web Api内存泄漏问题
  • 阿里云域名解析到非默认端口处理方式