生活随笔
收集整理的這篇文章主要介紹了
OpenJudge NOI 1.1 10:超级玛丽游戏
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【題目鏈接】
OpenJudge NOI 1.1 10:超級瑪麗游戲
【題目考點】
文件讀寫打表
【解題思路】
理論上可以使用printf將每一行字符串分別打印出來,或設置函數(shù)打印連續(xù)相同的字符,但人工工作量都太大,而且是重復性工作,那不是做程序的人應該做的事情。
有兩種思路可以解決這一問題。
首先都是需要將題中字符圖下來,保存成文本文件data.txt。
思路1:讀取data.txt,通過寫文件的方式寫出要提交的代碼code.cpp。
思路2:打表。讀取data.txt,把其中的字符都轉(zhuǎn)為ASCII碼,構(gòu)成數(shù)組。建立新文件,直接初始化數(shù)組,然后打印數(shù)組內(nèi)容。
【題解代碼】
解法1:
將題中字符圖拷貝下來,保存成文本文件data.txt。在process.cpp中寫代碼,其功能是生成代碼文件code.cpp,讀取data.txt的每一行,將其外面套上“printf”函數(shù),構(gòu)成用printf輸出字符串的c++語句(構(gòu)成cout輸出語句也可以),寫入到code.cpp文件中。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';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;
}
#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:打表
將題中字符圖拷貝下來,保存成文本文件data.txt。讀取data.txt,將每個字符轉(zhuǎn)化為ASCII碼,用逗號分隔,最后加一個0(即’\0’,為了構(gòu)成一個字符串),寫入一個文件arr.txt中
例:
若data.txt中是: abc
生成的arr.txt中應該是:97,98,99,0寫代碼,輸出一個字符數(shù)組。字符數(shù)組由arr.txt中的內(nèi)容初始化,
#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;
}
總結(jié)
以上是生活随笔為你收集整理的OpenJudge NOI 1.1 10:超级玛丽游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。