【题目链接】

OpenJudge NOI 1.1 10:超级玛丽游戏

【题目考点】

  1. 文件读写
  2. 打表

【解题思路】

理论上可以使用printf将每一行字符串分别打印出来,或设置函数打印连续相同的字符,但人工工作量都太大,而且是重复性工作,那不是做程序的人应该做的事情。

有两种思路可以解决这一问题。
首先都是需要将题中字符图下来,保存成文本文件data.txt。
思路1:读取data.txt,通过写文件的方式写出要提交的代码code.cpp。
思路2:打表。读取data.txt,把其中的字符都转为ASCII码,构成数组。建立新文件,直接初始化数组,然后打印数组内容。

【题解代码】

解法1:

  1. 将题中字符图拷贝下来,保存成文本文件data.txt。
  2. 在process.cpp中写代码,其功能是生成代码文件code.cpp,读取data.txt的每一行,将其外面套上“printf”函数,构成用printf输出字符串的c++语句(构成cout输出语句也可以),写入到code.cpp文件中。
  3. code.cpp就是可以提交的代码
//process.cpp,这是读入data.txt生成code.cpp的程序,不是提交的代码
#include<bits/stdc++.h>
using namespace std;
int main()
{FILE *fp_data = fopen("data.txt", "r"), *fp_code = fopen("code.cpp", "w");char s[150];int len;fputs("#include<bits/stdc++.h>\n", fp_code);fputs("using namespace std;\n", fp_code);fputs("int main()\n", fp_code);fputs("{\n", fp_code);while(fgets(s, 150, fp_data)){len = strlen(s);if(feof(fp_data) == false)s[len - 1] = '\0';//如果不是最后一行,获得的字符数组s的最后一个字符是\n,应该将其去掉。fprintf(fp_code, "\tprintf(\"%s\\n\");\n", s);}fputs("\treturn 0;\n", fp_code);fputs("}\n", fp_code);fclose(fp_data);fclose(fp_code);return 0;
}
//code.cpp 用于提交的代码
#include<bits/stdc++.h>
using namespace std;
int main()
{printf("                ********\n");printf("               ************\n");printf("               ####....#.\n");printf("             #..###.....##....\n");printf("             ###.......######              ###                 ###           ###           ###\n");printf("                ...........               #...#               #...#         #...#         #...#\n");printf("               ##*#######                 #.#.#               #.#.#         #.#.#         #.#.#\n");printf("            ####*******######             #.#.#               #.#.#         #.#.#         #.#.#\n");printf("           ...#***.****.*###....          #...#               #...#         #...#         #...#\n");printf("           ....**********##.....           ###                 ###           ###           ###\n");printf("           ....****    *****....\n");printf("             ####        ####\n");printf("           ######        ######\n");printf("##############################################################              ##################################\n");printf("#...#......#.##...#......#.##...#......#.##------------------#              #...#......#.##------------------#\n");printf("###########################################------------------#              ###############------------------#\n");printf("#..#....#....##..#....#....##..#....#....#####################              #..#....#....#####################\n");printf("##########################################    #----------#                  ##############    #----------#\n");printf("#.....#......##.....#......##.....#......#    #----------#                  #.....#......#    #----------#\n");printf("##########################################    #----------#                  ##############    #----------#\n");printf("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#                  #.#..#....#..#    #----------#\n");printf("##########################################    ############                  ##############    ############\n");return 0;
}

解法2:打表

  1. 将题中字符图拷贝下来,保存成文本文件data.txt。
  2. 读取data.txt,将每个字符转化为ASCII码,用逗号分隔,最后加一个0(即’\0’,为了构成一个字符串),写入一个文件arr.txt中
    例:
    若data.txt中是: abc
    生成的arr.txt中应该是:97,98,99,0
  3. 写代码,输出一个字符数组。字符数组由arr.txt中的内容初始化,
#include<bits/stdc++.h>
using namespace std;
//打表程序,不用于提交
int main()
{FILE *fp_data = fopen("data.txt", "r"), *fp_arr = fopen("arr.txt", "w");char c = fgetc(fp_data);while(c != EOF){fprintf(fp_arr, "%d,", c);c = fgetc(fp_data);}fprintf(fp_arr, "%d", 0);//构成字符数组的末尾fclose(fp_data);fclose(fp_arr);return 0;
}
#include<bits/stdc++.h>
using namespace std;
//提交用代码
int main()
{char s[3000] = {32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,42,42,42,42,42,42,42,42,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,42,42,42,42,42,42,42,42,42,42,42,42,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,46,46,46,46,35,46,10,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,46,35,35,35,46,46,46,46,46,35,35,46,46,46,46,10,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,46,46,46,46,46,46,46,35,35,35,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,32,32,32,32,32,32,32,32,32,32,32,35,35,35,32,32,32,32,32,32,32,32,32,32,32,35,35,35,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,46,46,46,46,46,46,46,46,46,46,46,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,46,46,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,46,46,35,32,32,32,32,32,32,32,32,32,35,46,46,46,35,32,32,32,32,32,32,32,32,32,35,46,46,46,35,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,42,35,35,35,35,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,35,46,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,35,46,35,32,32,32,32,32,32,32,32,32,35,46,35,46,35,32,32,32,32,32,32,32,32,32,35,46,35,46,35,10,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,42,42,42,42,42,42,42,35,35,35,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,35,46,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,35,46,35,32,32,32,32,32,32,32,32,32,35,46,35,46,35,32,32,32,32,32,32,32,32,32,35,46,35,46,35,10,32,32,32,32,32,32,32,32,32,32,32,46,46,46,35,42,42,42,46,42,42,42,42,46,42,35,35,35,46,46,46,46,32,32,32,32,32,32,32,32,32,32,35,46,46,46,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,46,46,35,32,32,32,32,32,32,32,32,32,35,46,46,46,35,32,32,32,32,32,32,32,32,32,35,46,46,46,35,10,32,32,32,32,32,32,32,32,32,32,32,46,46,46,46,42,42,42,42,42,42,42,42,42,42,35,35,46,46,46,46,46,32,32,32,32,32,32,32,32,32,32,32,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,32,32,32,32,32,32,32,32,32,32,32,35,35,35,32,32,32,32,32,32,32,32,32,32,32,35,35,35,10,32,32,32,32,32,32,32,32,32,32,32,46,46,46,46,42,42,42,42,32,32,32,32,42,42,42,42,42,46,46,46,46,10,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,32,32,32,32,32,32,32,32,35,35,35,35,10,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,35,35,32,32,32,32,32,32,32,32,35,35,35,35,35,35,10,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10,35,46,46,46,35,46,46,46,46,46,46,35,46,35,35,46,46,46,35,46,46,46,46,46,46,35,46,35,35,46,46,46,35,46,46,46,46,46,46,35,46,35,35,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,46,46,35,46,46,46,46,46,46,35,46,35,35,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,35,10,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,35,10,35,46,46,35,46,46,46,46,35,46,46,46,46,35,35,46,46,35,46,46,46,46,35,46,46,46,46,35,35,46,46,35,46,46,46,46,35,46,46,46,46,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,46,35,46,46,46,46,35,46,46,46,46,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,10,35,46,46,46,46,46,35,46,46,46,46,46,46,35,35,46,46,46,46,46,35,46,46,46,46,46,46,35,35,46,46,46,46,46,35,46,46,46,46,46,46,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,46,46,46,46,35,46,46,46,46,46,46,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,10,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,10,35,46,35,46,46,35,46,46,46,46,35,46,46,35,35,46,35,46,46,35,46,46,46,46,35,46,46,35,35,46,35,46,46,35,46,46,46,46,35,46,46,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,46,35,46,46,35,46,46,46,46,35,46,46,35,32,32,32,32,35,45,45,45,45,45,45,45,45,45,45,35,10,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,32,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,0};cout<<s;return 0;
}

OpenJudge NOI 1.1 10:超级玛丽游戏相关推荐

  1. OpenJudge小组NOI / 1.1编程基础之输入输出10:超级玛丽游戏(C++C语言Python)

    OpenJudge - 10:超级玛丽游戏 http://noi.openjudge.cn/ch0101/10/ 总时间限制: 1000ms 内存限制: 65536kB 描述 超级玛丽是一个非常经典的 ...

  2. OpenJudge NOI 1.9 10:找最大数序列

    [题目链接] OpenJudge NOI 1.9 10:找最大数序列 [题目考点] 1. 求最值 2. 数组填充 int a[105], ai = 0 待填充数据x,填充方法有两种 填充到下标1~ai ...

  3. 信息学奥赛一本通 1970:【15NOIP普及组】扫雷游戏 | OpenJudge NOI 1.8 14:扫雷游戏地雷数计算 | 洛谷 P2670 [NOIP2015 普及组] 扫雷游戏

    [题目链接] ybt 1970:[15NOIP普及组]扫雷游戏 OpenJudge NOI 1.8 14:扫雷游戏地雷数计算 洛谷 P2670 [NOIP2015 普及组] 扫雷游戏 [题目考点] 1 ...

  4. OpenJudge NOI 1.7 10:简单密码

    [题目链接] OpenJudge NOI 1.7 10:简单密码 [题目考点] 1. ASCII码 2. 字符串 [解题思路] 分析规律可知,明文字母是密文字符向前数的第5个字母. 解法1:字母对应数 ...

  5. 信息学奥赛一本通 1168:大整数加法 | OpenJudge NOI 1.6 10:大整数加法

    [题目链接] ybt 1168:大整数加法 OpenJudge NOI 1.6 10:大整数加法 [题目考点] 1. 高精度 考察:高精加高精 高精度计算讲解 [解题思路] 注意:输入可能有多余的前导 ...

  6. 信息学奥赛一本通 1126:矩阵转置 | OpenJudge NOI 1.8 10:矩阵转置

    [题目链接] ybt 1126:矩阵转置 OpenJudge NOI 1.8 10:矩阵转置 [题目考点] 1. 二维数组遍历 [题解代码] 解法1:构建新矩阵 矩阵转置后,原来i,j位置的元素会变到 ...

  7. 信息学奥赛一本通 1066:满足条件的数累加 | OpenJudge NOI 1.5 10

    [题目链接] ybt 1066:满足条件的数累加 OpenJudge NOI 1.5 10:满足条件的数累加 [题目考点] 1. 循环求和 设置加和变量s,记住要将其初始化为0.int s = 0; ...

  8. 信息学奥赛一本通 1048:有一门课不及格的学生 | OpenJudge NOI 1.4 10

    [题目链接] ybt 1048:有一门课不及格的学生 OpenJudge NOI 1.4 10:有一门课不及格的学生 [题目考点] 1. 逻辑表达式 2. if-else语句嵌套 [解题思路] 语文数 ...

  9. 信息学奥赛一本通 1023:Hello,World!的大小 | OpenJudge NOI 1.2 10

    [题目链接] ybt 1023:Hello,World!的大小 OpenJudge NOI 1.2 10:Hello, World!的大小 [题目考点] 1. sizeof运算符 sizeof可以求某 ...

最新文章

  1. 简历空空,如何编写一个面试时能拿的出手的真实项目?
  2. SQL 调试:无法启动 T-SQL 调试。未能附加到 SQL Server 进程
  3. maven离线安装jar包
  4. java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
  5. 多个div中的label标签对齐
  6. 我想创业,但不懂技术怎么办
  7. Hyperledger Fabric on SAP Cloud Platform
  8. 【C语言】俄罗斯方块的源代码
  9. gis怎么提取水系_ArcGIS水文分析实战教程(7)细说流域提取
  10. [Matlab-1]符号函数和数值函数
  11. echarts label固定位置_echarts 饼状图调节 label和labelLine的位置
  12. word中替换向下箭头
  13. 全面详解互联网企业开放API的 “守护神”
  14. Java Cryptography
  15. 首次登录强制修改密码
  16. 前端应届生面试技巧,没有项目经验怎么应对?
  17. intelx86为何从0xFFFF0处执行
  18. Frames : 一个特殊的窗口类型
  19. Python OpenSSL 解析证书
  20. ESET nod32

热门文章

  1. maven dependency scope
  2. 人人都能看懂的机器学习!3个案例详解聚类、回归、分类算法
  3. FreeModbus保持寄存器
  4. STM32之DMA原理
  5. 我是如何把一个15分钟的程序优化到了10秒的
  6. IntelliJ IDEA 2020.2 正式发布,真香!
  7. Socket编程实践(4) --多进程并发server
  8. 你不懂js系列学习笔记-类型与文法- 02
  9. HDU 4548 美素数 素数题解
  10. react让我怀疑自己没有当程序员的天分怎么破?