2020.03.08测试题4

题目

LED屏的液晶显示在工业上有着十分重要的应用,

现在W老师给你个任务,给你一个仅包含数字的字符串,输出其液晶显示效果。本题中,我们利用’-‘和’|’表示液晶数字中的笔画,可以看出每个数字对应的液晶显示格式都严格占据5行3列的空间(空格也需要输出),例如数字8:

在这里插入图片描述

因此,数字0-9可以表示为:

图片1.png输入格式:
一行,仅包含数字的字符串(字符串长度不超过200)
输出格式:
该数字对应的液晶显示效果
输入样例:
0123456789
输出样例:
在这里插入图片描述

代码1展示

#include<stdio.h>
#include<string.h>
#define N 600
int main()
{
	char b[N],a[5][N];
	scanf("%s",&b);
	int s=strlen(b);
	for(int i=1;i<=s;i++)
			switch(b[i-1])
			{
				case '0':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]='|';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]=' ';a[2][3*i-1]=' ';
						 a[3][3*i-3]='|';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]='-';a[4][3*i-1]=' ';break;	
						 				 
				case '1':a[0][3*i-3]=' ';a[0][3*i-2]=' ';a[0][3*i-1]=' ';
						 a[1][3*i-3]=' ';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]=' ';a[2][3*i-1]=' ';
						 a[3][3*i-3]=' ';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]=' ';a[4][3*i-1]=' ';break;	
						 					 
				case '2':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]=' ';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]='-';a[2][3*i-1]=' ';
						 a[3][3*i-3]='|';a[3][3*i-2]=' ';a[3][3*i-1]=' ';
						 a[4][3*i-3]=' ';a[4][3*i-2]='-';a[4][3*i-1]=' ';break;
						 
				case '3':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]=' ';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]='-';a[2][3*i-1]=' ';
						 a[3][3*i-3]=' ';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]='-';a[4][3*i-1]=' ';break;
						 
				case '4':a[0][3*i-3]=' ';a[0][3*i-2]=' ';a[0][3*i-1]=' ';
						 a[1][3*i-3]='|';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]='-';a[2][3*i-1]=' ';
						 a[3][3*i-3]=' ';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]=' ';a[4][3*i-1]=' ';break;
						 
				case '5':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]='|';a[1][3*i-2]=' ';a[1][3*i-1]=' ';
						 a[2][3*i-3]=' ';a[2][3*i-2]='-';a[2][3*i-1]=' ';
						 a[3][3*i-3]=' ';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]='-';a[4][3*i-1]=' ';break;
						 
				case '6':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]='|';a[1][3*i-2]=' ';a[1][3*i-1]=' ';
						 a[2][3*i-3]=' ';a[2][3*i-2]='-';a[2][3*i-1]=' ';
						 a[3][3*i-3]='|';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]='-';a[4][3*i-1]=' ';break;
						 
				case '7':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]=' ';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]=' ';a[2][3*i-1]=' ';
						 a[3][3*i-3]=' ';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]=' ';a[4][3*i-1]=' ';break;
						 
				case '8':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]='|';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]='-';a[2][3*i-1]=' ';
						 a[3][3*i-3]='|';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]='-';a[4][3*i-1]=' ';break;
						 
				case '9':a[0][3*i-3]=' ';a[0][3*i-2]='-';a[0][3*i-1]=' ';
						 a[1][3*i-3]='|';a[1][3*i-2]=' ';a[1][3*i-1]='|';
						 a[2][3*i-3]=' ';a[2][3*i-2]='-';a[2][3*i-1]=' ';
						 a[3][3*i-3]=' ';a[3][3*i-2]=' ';a[3][3*i-1]='|';
						 a[4][3*i-3]=' ';a[4][3*i-2]='-';a[4][3*i-1]=' ';break;
			}
	for(int i=0;i<5;i++)//行
	{
		for(int j=0;j<3*s;j++)
		printf("%c",a[i][j]);			
		printf("\n");
	}
		
	return 0;
} 

此代码的输出方式是直接输出,方式简单粗暴,但代码长度较长,能够通过这种较为简单的方式满足题目的要求。

代码2展示

算法上的优化,从80行缩减至17行,以此来体现简便算法的魅力。

#include<stdio.h>
#include<string.h>
	char mp[5][50]={
	" -     -  -     -  -  -  -  - ",
	"| |  |  |  || ||  |    || || |",
	"       -  -  -  -  -     -  - ",
	"| |  ||    |  |  || |  || |  |",
	" -     -  -     -  -     -  - "};
int main()
{	
	char s[202];
	scanf("%s",s);
	for(int j=0;j<5;j++,puts(""))	
		for(int i=0;i<strlen(s);i++)
			printf("%c%c%c",mp[j][3*(s[i]-'0')],mp[j][3*(s[i]-'0')+1],mp[j][3*(s[i]-'0')+2]);
	return 0;	
} 
发布了19 篇原创文章 · 获赞 0 · 访问量 457

猜你喜欢

转载自blog.csdn.net/zzu957/article/details/104952775