c语言遇到个小问题,不是很理解

问题遇到的现象和发生背景

为什么在输入a为345.0的时候得到的结果却是-17.778;

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
int main()
{
    double a, v;
    scanf("%1f", &a);
    v=5.0*(a-32.0)/9.0;
    printf("%.3f\n",v);
    return 0;
 } 
运行结果及报错内容

-17.778

我的解答思路和尝试过的方法

我将a为int,把5.0换成5,32.0为32,9.0为9,再输入345,才得出正确结果

我想要达到的结果

我想知道这是为什么,为什么不能用345.0得到正确结果,不是很理解

scanf("%1f", &a);这里写错了啊 应该是scanf("%lf", &a);

编译代码要看是否有警告啊

img

编译器没报编译错误,确实不好看见