按规律输出星号的问题

如图,在未知行数的情况下可否输出如图的图形?对算法不怎么了解,老师让我们这一段代码输出这个图形(不是直接println(*****)) 但我想知道可否从键盘输入任意行数 图片说明

http://blog.csdn.net/ValDC_Morning/article/details/54808774?locationNum=14&fps=1

#include <stdio.h>

void main()
{
    int a;
    printf("input:");
    scanf("%d",&a);
    int s=a/2;
    for (int i=s*(-1);i<s+1;i++)
    {
        for (int j=s*(-1);j<s+1;j++)
        {
            if (i+j<=s&&i-j<=s&&i+j>=s*(-1)&&j-i<=s)
            {
                printf("*");
            }
            else
                printf(" ");
        }
        printf("\n");
    }
}