C语言用数学公式打印空心菱形

用ax+c=y直线方程,两个点确定一个坐标,来解答是怎么解的?????最后结果是每个if语句里面都有一个方程,就打印出来了。。。

if x==y || x == 2*n-y 输出星号,否则输出空格

打印菱形的非常精简的代码

#include<string.h>

int main()
{

        int i=0;
        int j=0;
        int num=0;
        printf("input a odd number:");
        scanf("%d",&num);
        while(num%2)
        {

            char arr1[num][num];

            for(i=0;i<num;i++)
            {
                for(j=0;j<num;j++)
                {
                    if((i+j)>=num/2 && (i+j)<=num/2*3 && (i-j)<=num/2 && (j-i)<=num/2)
                    {
                            arr1[i][j]='*';
                    }   
                    else
                            arr1[i][j]=32;
                    printf("%c",arr1[i][j]);
                }
                printf("\n");
            }
        printf("input a odd number:");
        scanf("%d",&num);

        }

}

``![图片说明](https://img-ask.csdn.net/upload/201812/22/1545484071_495050.jpg)
`