我虽然不会告诉你们答案,但我可以点明一下思路和算法。
哈喽,加入优快云第一天,开始吧!!!
我们来看一下题目
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
题目很简单,但如何打印呢??
我们先了解一下输出的几种方法:
No.1——cout语句
我想在c++里说出“鸡你太美”应该怎么办??
很简单,用cout语句!!
格式是这样的:cout<<"你想说的话";
即:cout<<"鸡你太美";
如果需要换行,则在特定位置加上<<endl即可。
例如,打印出静夜思应怎么写??
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"床前明月光,";
cout<<"疑是地上霜。";
cout<<"举头望明月,"<<endl<<"低头思故乡。";
return 0;
}
No.2 printf语句
如果我没记错的话,这是c语言的用法,而c++仍然沿用了下来。
它的用法也很简单,也有一点但唯一一点好处是灵活。
普通输出已知文字格式:printf("你要说的话");
若需输出一个int变量,则需换一种格式,例(输出int变量a):
#include<bits/stdc++.h>
using namespace std;
int main(){
int a=0;
printf("%d",&a);
return 0;
}
或者把printf("%d",&a);中的%d换为%i,其实都是一个意思,一个用法,一个作用。
若需输出一个char变量,把printf("%d",&a);中的%d换为%c;
若需输出一个string变量,把printf("%d",&a);中的%d换为%s;
若需输出一个float变量,把printf("%d",&a);中的%d换为%f;
若需输出一个double变量,把printf("%d",&a);中的%d换为%lf;
若需输出一个long变量,把printf("%d",&a);中的%d换为%ld;
若需输出一个longlong变量,把printf("%d",&a);中的%d换为%lld;
若需输出一个一个十进制数的绝对值,把printf("%d",&a);中的%d换为%u;
若需输出一个去掉小数末尾多余的0的结果,把printf("%d",&a);中的%d换为%g即可。
以上所述是取变量进行输出,下面我会再讲一下细节。
1.在双引号内加入\n表示换行,例输出“我喜欢(换行)唱、跳、rap、打篮球(换行)music!”;
#include<bits/stdc++.h>
using namespace std;
int main(){
printf("我喜欢\n唱、跳、rap、打篮球\nmusic!");
return 0;
}
2.在双引号内加入\t表示制表,作用与直接输出Tab无异,以下只简述功能,不再过多赘述;
3.\b向后退一格;
4.\r回到本行开头,即回车;
5.\v垂直向下做表。
本文知识就讲这么多,你学废了吗??
有胆的就来试试手吧!!
P1000 超级玛丽游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
答案在下面(不会再翻!!)
#include <iostream>
using namespace std;
int main()
{
cout <<
" ********\n"
" ************\n"
" ####....#.\n"
" #..###.....##....\n"
" ###.......###### ### ###\n"
" ........... #...# #...#\n"
" ##*####### #.#.# #.#.#\n"
" ####*******###### #.#.# #.#.#\n"
" ...#***.****.*###.... #...# #...#\n"
" ....**********##..... ### ###\n"
" ....**** *****....\n"
" #### ####\n"
" ###### ######\n"
"##############################################################\n"
"#...#......#.##...#......#.##...#......#.##------------------#\n"
"###########################################------------------#\n"
"#..#....#....##..#....#....##..#....#....#####################\n"
"########################################## #----------#\n"
"#.....#......##.....#......##.....#......# #----------#\n"
"########################################## #----------#\n"
"#.#..#....#..##.#..#....#..##.#..#....#..# #----------#\n"
"########################################## ############\n"
;
return 0;
}