显示菱形,有人可以看看哪里错了吗

img


如图是我的解答过程,看不出来哪里有问题,运行出来跟预期也没有什么差别但是提交了就是答案错误꒦ິ^꒦ິ可以帮忙看看教教吗?谢谢
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j,k;
char c;
scanf("%d %c",&n,&c);
if(n<=0)
cout<<"None";
if(n%2==0)
cout<<"Error";
else
{
for(i=0;i<n/2;i++)
{
for(j=0;j<n/2-i;j++)
cout<<" ";
for(k=0;k<i*2+1;k++)
cout<<c;
printf("\n");
}
for(i=0;i<n;i++)
cout<<c;
printf("\n");
for(i=0;i<n/2;i++)
{
for(j=0;j<i+1;j++)
cout<<" ";
for(k=0;k<(n/2-i)*2-1;k++)
cout<<c;
printf("\n");
}
}
}

这么改下试试:

#include <iostream>
//#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n, i, j, k;
    char c;
    cin >> n >> c;      //scanf("%d %c", &n, &c);
    if (n <= 0)
        cout << "None";
    else if (n % 2 == 0) //修改
        cout << "Error";
    else
    {
        for (i = 0; i < n / 2; i++)
        {
            for (j = 0; j < n / 2 - i; j++)
                cout << " ";
            for (k = 0; k < i * 2 + 1; k++)
                cout << c;
            cout << endl;  //printf("\n");
        }
        for (i = 0; i < n; i++)
            cout << c;
        cout << endl;     //printf("\n");
        for (i = 0; i < n / 2; i++)
        {
            for (j = 0; j < i + 1; j++)
                cout << " ";
            for (k = 0; k < (n / 2 - i) * 2 - 1; k++)
                cout << c;
            if (i != n / 2 - 1)//修改
                cout << endl; //printf("\n");
        }
    }
    return 0;
}