关于简单的C++问题:如何输出图形

输出由输入的字符组成的如下形状的图形。(10分)
题目内容:

程序运行时输入一个字符,输出由该字符组成的如下形状的图形。

              *

         *   *

    *   *   *

输入格式:

数入一个Ascii表中的任意字符。如* ,#等。

输出格式:

输出图形中字符之间有2个空格隔开,最左边的字符前有5个空格。

输入样例:

*

输出样例:

              *

         *   *

    *   *   *

该如何写代码?


#include <iostream>
using namespace std;

int main()
{
    int N = 3,i,j;
    char ch;
    cin >> ch;

    for(i=1;i<=N;++i)
    {
        printf("   "); //先输出3个空格
        for(j=1;j<=N-i;++j)
        {
            printf("   ");//这里是3个空格
        }
        for(j=1;j<=i;++j)
        {
            printf("  %c",ch);//%c前面2个空格
        }
        printf("\n");
    }
    return 0;
}