请教这段C代码的问题?

为什么没有输出a的值
代码:

#include<stdio.h>
void main() {
    int a;
    a = 1;
    printf(a);
    return 0;
}

运行结果:

“Project2.exe”(Win32): 已加载“C:\Users\jyz_1\source\repos\Project2\Debug\Project2.exe”。已加载符号。
“Project2.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。
“Project2.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel32.dll”。
“Project2.exe”(Win32): 已加载“C:\Windows\SysWOW64\KernelBase.dll”。
“Project2.exe”(Win32): 已加载“C:\Windows\SysWOW64\vcruntime140d.dll”。
“Project2.exe”(Win32): 已加载“C:\Windows\SysWOW64\ucrtbased.dll”。
线程 0x4d4 已退出,返回值为 0 (0x0)。
程序“[16512] Project2.exe”已退出,返回值为 0 (0x0)。

在exe中显示如下:

C:\Users\jyz_1\source\repos\Project2\Debug\Project2.exe (进程 16512)已退出,代码为 -1。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

编译器为visual studio2019,请问问题出在何处

void main()
->
int main()

printf(a);
->
printf("%d",a);