打印图形为何打印不出来,请指正

打印数字菱形
输入 2 3
打印 2
3 3
4 4
3 3
2

这是我写的,但是一直不知道有什么地方错误了,不胜感激!

#include<stdio.h>
int main()
{
    int a,b,i,j,z,m,n,k;
    scanf("%d,%d",&a,&b);
    for(i=0;i<b;i++)
    {
        z=b-i;
        for(j=0;j<(b+2);j++)
        {
            if(j==z,j==z+2)
            {
                printf("%d",&a);
            }
            if(j==b)
            {
                printf("%d",&a);
            }
            else
            {
                printf(" ");
            }
            a++; 
        }    
    }
    b--;
    a++;
    for(m=0;m<b;m++)
    {
        k=b-m;
        for(n=0;n<(b+2);n++)
        {
            if(n==k&&n==k+2)
            {
                printf("%d",&a);
            }
            if(n==b)
            {
            printf("%d",&a);
            }
            else
            {
                printf(" ");
            }
            a--;
        }
    }
    return 0;
}

scanf("%d%d",&a,&b);

//scanf内部结构就是你要输入的方式,例如%d空格%d,2空格3
//printf内部直接调用变量,&是取地址符号,表示变量所在地址。

```c
#include<stdio.h>
int main()
{
    int a,b,i,j,z,m,n,k;
    scanf("%d %d",&a,&b);
    for(i=0;i<b;i++)
    {
        z=b-i;
        for(j=0;j<(b+2);j++)
        {
            if(j==z,j==z+2)
            {
                printf("%d",a);
            }
            if(j==b)
            {
                printf("%d",a);
            }
            else
            {
                printf(" ");
            }
            a++; 
        }    
    }
    b--;
    a++;
    for(m=0;m<b;m++)
    {
        k=b-m;
        for(n=0;n<(b+2);n++)
        {
            if(n==k&&n==k+2)
            {
                printf("%d",a);
            }
            if(n==b)
            {
            printf("%d",a);
            }
            else
            {
                printf(" ");
            }
            a--;
        }
    }
    return 0;
}
 

```