emmmmm终于考完试啦(其实早就考完了),所以我来更新了。今天要分享的是我原来学的打印图形,上手十分简单,一看就会。但如果变一个角度问,格局立马就不一样了。就像今天要说的题---打印u形。
题目如下:
ok呀,先来捋捋思路,打印这种图形其实就是打印一个长方形,把它中间和上面去掉。当然,直接这么写思路很容易乱,那就把它想想成一个千层宝塔,分层写就好了。
首先第一层 ,只需要把原来需要打印的*变成空格就行了
for(int i=1;i<=n;i++){ //这个i是行
cout<<' ';
}
接下来是中间的部分除了刚才写过的第一行和最后一行(最后一行不是空格),其他都是空格。
for(int i=2;i<=n;i++){
cout<<'*'; //两边也不是空格
for(int j=2;j<=n-1;j++){
cout<<' '; //中间那部分空格
}
cout<<'*'<<endl;
}
最后也是最简单的一步把最后一行打印出来。
for(int i=1;i<=n;i++){
cout<<'*';
}
然后代码就完成了
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cout<<' ';
}
cout<<endl;
for(int i=2;i<=n;i++){
cout<<'*';
for(int j=2;j<=n-1;j++){
cout<<' ';
}
cout<<'*'<<endl;
}
for(int i=1;i<=n;i++){
cout<<'*';
}
return 0;
}
其实最后可能会有一个问题,就是为什么只有一个变量n,第一行变空格后只剩下
* *
* *
而最下面是
* * *
两个部分共用两个*
正好符合了题意。
话说我认为它更像汉堡。