自定义目录
C++ 输出一个菱形,构成字符和行数自己定
First
Little text Hao Long
代码片
.
#include<iostream>
using namespace std;
int main()
{
int n,a;
int i,j;
char x;
cout << "What notation do you want use ? Please enter:" << endl;
cin >> x; //想用什么样的字符来构成图形,这个字符只能是英文的
cout << "How many rows do you want it to run ? Please enter:" << endl;
cin >> n; //行数,偶数的话会是斜着的长方形
if(n%2==0){ //判断是偶数行还是奇数行,然后求出中间行是第几行
a=n/2;
}
else if(n%2!=0){
a=n/2+1;
} //可以画一个三行的菱形想一下,每列都对齐的那种
for(i=0;i<a;i++){ //上半部分
for(j=0;j<a-i;j++){ //该行空格数,是a-i是因为i在增大,a-i在减小,空格数也在减小
cout << " " << " "; //第二个空格是为了美观,嘿嘿~_~
}
for(j=0;j<=2*i;j++){ //该行字符数量,是2*i是因为从0开始,比如i=1的时候是从0到2,数量为3 // "=2*i"而不是"=2*i-1"因为i=0时会出现负数
cout << x << " ";
}
cout << endl;
}
for(i=a;i<n;i++){ //下半部分
for(j=0;j<=i-(a-1);j++){ //同上,i-(a-1)是比中间那一行多的行数,要知道,i=a是第a+1行;//我的每一行前都有两个空格(美观占其中一个)
cout << " " << " ";
}
for(j=0;j<2*(n-i)-1;j++){ //这个n-i不会等于0,所以用小于"2*n-1"这样的办法增加每行字符数
cout << x << " ";
}
cout << endl;
}
return 0;
}