编写一个“banner”函数,该函数的输入为大写字母,输出为一个字符数组,该数组以图形化的方式表示该字母。

思路

每个字母是如何表示的?
以’I‘为例:
在这里插入图片描述
每次画图都感觉心累,关键是画出来效果还不是很好。(不信你看上边那个图,有些线粗有些线细)有什么好的画图办法快救救孩子吧。
I可以表示为:1910 6401 6110 1910具体含义如下:

千位 百位 十位 个位
1910 1表示1行 9表示9列 1表示1行9列用1填充 0表示同行没有其它填充

具体表示结果:
在这里插入图片描述

千位 百位 十位 个位
6401 6表示1行 4表示4列 0表示6行4列用0填充 1表示同行后面有其它填充
6110 6表示1行 1表示1列 1表示6行1列用0填充 0表示同行没有其它填充

具体表示结果:
在这里插入图片描述
最后一个1910和第一个1910表示的一样。
字母在文件中的存放
文件中每行代表一个字母,要显示某一个字母只需读取固定的行

代码

//编写一个“banner”函数,该函数的输入为大写字母,输出为一个字符数组,该数组以图形化的方式表示该字母。
//四位数分别表示:千:行  百:列    十:输出空格还是*   个位:后面是否有连续的输出
#include<stdio.h>
void print(int l)
{
   
	int WhichLine = l;//指定要读取哪一行
	int CurrentIndex = 0;//当前读取的行
	int k, num;
	int data[100];
	FILE* fw = fopen("存放字母文件", "r");//根据自己的存放路径,进行修改。
	//读取固定的某一行
	while (!feof(fw))
	{
   
		if (CurrentIndex == WhichLine)
		{
   
			fscanf(fw, "%d", &num);
			for (k = 0; k < num; k++)
				fscanf(fw, "%d", &data[k]);
			break;
		}
		fscanf(fw, "%d", &num);
		for (k = 0; k < num; k++)
			fscanf(fw, "%d", &data[k]);
		CurrentIndex++;
	}
	fclose(fw);
	//数据读取完毕,进行打印
	int i, j;
	for (k = 0; k < num; k++)
	{
   
		//打印*
		if (data[k] / 10 % 10 == 1)//十位为1,打印*
		{
   
			for (i = 0; i < data[k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值