关于c#打印菱形的问题

请问怎么写这个代码呀
在控制台显示“输入行数”,“输入花纹”,然后打印出相应的菱形

img

#include <iostream>
#include <stdio.h>
using namespace std; //命名空间

   char c;
void PrintRhombus(int N) {
    int i, j;
    //上半部分
    for (i = 0; i < N; i++) {
        for (j = 0; j < N - 1 - i; j++) {
            cout << " ";
        }
        for (j = 0; j < 2 * i +1; j++) {
            cout << c;
        }
        cout << "\n";
    }
    //下半部分
    for (i = 0; i < N-1 ; i++) {
        for (j = 0; j <=i; j++) {
            cout << " ";
        }
        for (j = 0; j<2*(N-i-1)-1; j++) {
            cout << c;
        }
        cout << "\n";
    }
}

int main()
{
    int x;
    printf("输入行数");
    scanf("%d",&x);
    printf("输入花纹\n");
    getchar();
    scanf("%c",&c);
    PrintRhombus(x);
    return 0;
}

具体什么要求?
(1)空心菱形

img


//空心菱形
#include <iostream>
using namespace std;
int main()
{
    int n, i, j;
    cin >> n; //输入n
    //上半部分
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j < 2 * n; j++)
        {
            if (j == n + 1 - i || j == n - 1 + i)
                cout << "*";
            else
                cout << " ";
        }
        cout << endl;
    }
    //下半部分
    for (i = 1; i <= n - 1; i++)
    {
        for (j = 1; j < 2 * n; j++)
        {
            if (j == i + 1 || j == 2 * n - 1 - i)
                cout << "*";
            else
                cout << " ";
        }
        cout << endl;
    }
    return 0;
}

(2)实心菱形

img


#include <iostream>
using namespace std;
int main()
{
    int i, j, n;  //n代表上三角行数   
    cin >> n;
    //先输出上三角    
    for (i = 1; i <= n; ++i) //输出n行    
    {
        //输出第i行    
        for (j = 1; j <= n - i; ++j) //输出n-i个空格    
            cout << " ";
        for (j = 1; j <= 2 * i - 1; ++j) //输出2*i-1个星号    
            cout << "*";
        cout << endl;
    }
    //下面输出下三角    
    for (i = 1; i <= n - 1; ++i) //输出n-1行     
    {
        //输出第i行    
        for (j = 1; j <= i; ++j) //输出i个空格    
            cout << " ";
        for (j = 1; j <= 2 * (n - i) - 1; ++j) //输出2*i-1个星号    
            cout << "*";
        cout << endl;
    }
    return 0;
}