如何居中对齐图案?
How to center align a pattern?
如何使箭头尾部与箭头居中对齐?
**
****
******
********
**********
****
****
****
****
这是我的代码:
#include<iostream>
using namespace std;
int main() {
int n;
cout<<"enter size";
cin>>n;
int rows,columns;
cout<<"enter numbers";
cin>>rows>>columns;
for(int k=1;k<=n;k++){
for(int j=1;j<=n-k;j++){
cout<<" ";
}
for(int j=1;j<=k;j++){
cout<<"*";
}
for(int i=1;i<=k;i++){
cout<<"*";
}
cout<<endl;
}
for(int i=1;i<=rows;i++){
for(int j=1;j<=columns;j++){
cout<<"*";
}
cout<<endl;
}
return 0;
}
我尝试使用以下输入 运行 它:
enter size 5
enter numbers 4 4
箭头看起来不错,但尾巴是左对齐的。我怎样才能让它进入中心?
假设您在终端上显示固定间距的字符,一般算法是:
- 取要居中的元素的宽度
we
。
- 取需要居中的区域的宽度
WA
- 在元素前打印
(WA-we)/2
个空格
考虑到在你的情况下 WA
将是 2*n
而 we
将是列,你可以在某处写:
int s=(2*n-columns)/2;
并在算法的第二部分打印 s
个空格,然后开始打印圣诞树树干的 *
。
顺便说一句,我不知道你是否可以在作业中使用字符串,但如果是的话,你可以在之后替换打印 w
个字符 c
的循环另一个只打印 string(w, c)
,(例如 cout<<string(s, ' ');
),这将使您的程序更加紧凑和可读。
如何使箭头尾部与箭头居中对齐?
**
****
******
********
**********
****
****
****
****
这是我的代码:
#include<iostream>
using namespace std;
int main() {
int n;
cout<<"enter size";
cin>>n;
int rows,columns;
cout<<"enter numbers";
cin>>rows>>columns;
for(int k=1;k<=n;k++){
for(int j=1;j<=n-k;j++){
cout<<" ";
}
for(int j=1;j<=k;j++){
cout<<"*";
}
for(int i=1;i<=k;i++){
cout<<"*";
}
cout<<endl;
}
for(int i=1;i<=rows;i++){
for(int j=1;j<=columns;j++){
cout<<"*";
}
cout<<endl;
}
return 0;
}
我尝试使用以下输入 运行 它:
enter size 5
enter numbers 4 4
箭头看起来不错,但尾巴是左对齐的。我怎样才能让它进入中心?
假设您在终端上显示固定间距的字符,一般算法是:
- 取要居中的元素的宽度
we
。 - 取需要居中的区域的宽度
WA
- 在元素前打印
(WA-we)/2
个空格
考虑到在你的情况下 WA
将是 2*n
而 we
将是列,你可以在某处写:
int s=(2*n-columns)/2;
并在算法的第二部分打印 s
个空格,然后开始打印圣诞树树干的 *
。
顺便说一句,我不知道你是否可以在作业中使用字符串,但如果是的话,你可以在之后替换打印 w
个字符 c
的循环另一个只打印 string(w, c)
,(例如 cout<<string(s, ' ');
),这将使您的程序更加紧凑和可读。