星号三角形的题,这样不对吗?

星号三角形:读入一个整数n,n是奇数,输出由星号字符组成的等边三角形,要求:第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共n个星号。

Input
一个整数n,n是奇数

Output
由星号字符组成的等边三角形,最后一行有n个星号

Sample Input
3
Sample Output
*


{
int a,b,m,n,i,j,k; //a为星星的数量,b为一行总位数,m为行数,n为最后一行星星的个数
scanf("%d",n);

m=(n+1)/2;
b=n;


for(i=1;i<=m;i++)
{

    a=2*m-1;
    for(j=1;j<=(b-a)/2;j++)
    {
        printf(" ");
    }
    for(k=1;k<=a;k++)
    {
        printf("*");
    }

    if(i<m)
    {
        printf("\n");
    }
}
return 0;

}


int main()
{
    int num;
    scanf("%d",&num);
    
    for(int i=1;i<=num/2+1;++i)
    {
        for(int j=0;j<(num/2-i+1);++j)
            printf(" ");
        for(int j=0;j<2*i-1;++j)
            printf("*");
        printf("\n");
    }
    
    return 0;
}