画菱形
Description
在屏幕上按指定大小输出一个菱形。
菱形的宽度由用户输入,边由字符’*’组成,其余部分用空格填充。
注意,在每一行末尾不要加入多余的空格。具体画法参见例样。
Input
有多组测试数据,每组数据输入一个奇数n(3<=n<=79),表示菱形宽度,输入以文件结束。
Output
按照给定大小输出菱形,每组数据后面空一行。
Sample Input 1
3
5
Sample Output 1
思路
上下对称的思想
关键是把握符号的位置,利用iomanip包中的setw()很容易实现
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
while (cin>>n) {
int t = n / 2 + 1;
int temp;
cout << setw(t) << '*' << endl;
for(int i = 1; i < t; i++) {
cout << setw(t - i) << '*' << setw(2*i) << '*' << endl;
temp = 2 * i;
}
for (int i = 2; i <=(n-t); i++) {
temp -= 2;
cout << setw(i) << '*' << setw(temp) << '*' << endl;
}
cout << setw(t) << '*' << endl;
cout << endl;
}
return 0;
}