打印大X
小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。
为了便于比对空格,所有的空白位置都以句点符来代替。
要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)
要求输出一个大X
例如,用户输入:
3 9
程序应该输出:
***.....*** .***...***. ..***.***.. ...*****... ....***.... ...*****... ..***.***.. .***...***. ***.....***
高是 9 宽是 11
再例如,用户输入:
4 21
程序应该输出
****................**** .****..............****. ..****............****.. ...****..........****... ....****........****.... .....****......****..... ......****....****...... .......****..****....... ........********........ .........******......... ..........****.......... .........******......... ........********........ .......****..****....... ......****....****...... .....****......****..... ....****........****.... ...****..........****... ..****............****.. .****..............****. ****................****
高是21 宽是 24
#include <iostream>
using namespace std;
int main(){
//m : 笔的宽度
//n : X的高度 (0<m<n, 3<n<1000, 保证n是奇数)
int m,n;
cin>>m>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n+m-1;j++)//矩形的高是 n 宽是 n+m-1
{
for(int k=0;k<m;k++)//打印右斜
{
if(i+k==j)
{
cout<<"*";
goto This;//使用 goto语句 打印完*号则不打印其他 直接下一次循环
}
}
for(int k=0;k<m;k++){
if((i-k)+j==n-1)//打印左斜
{
cout<<"*";
goto This;
}
}
cout<<".";//没有打印星号则打印句号
This: ;
}
cout<<"\n";
}
}
代码满足上面两组数据