scanf输入结构体数组里的double类型出错

%f和%lf都不行,之前好好的,突然就不能运行了,之前是访问时发生错误,几次之后就变成了这样

img

img

img

不用改 scanf 去掉.0
如果有用麻烦给个采纳 谢谢~

%lf 中间 不要加 .0 , 另外 scanf_s 改成 scanf 试试呢?

scanf_s()三个参数

直接用scanf

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/770866
  • 这篇博客你也可以参考下:scanf标准输出中不可以有%.2f
  • 除此之外, 这篇博客: 机试编程总结中的 2.scanf的%c和%s 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • scanf的%c格式时可以读入空格和换行\n的;%d的输入则是以空白符(即空格、换行等)作为结束判断标志。
    字符数组使用%s格式读入时的结束标志:空格、换行符。

    #include <stdio.h>
    int main(){
        int a;
        char c,str[10];   
        scanf("%d%c%s",&a,&c,str);
        printf("a=%d,c=%c,str=%s",a,c,str);
        system("pause");
    }

    输入的结果是:1 a bcd
    输出的结果是:a=1,c= ,str=a
    int型变量a遇到空格时停止读入(a不包含空格);而char型字符变量c(注意不是字符串变量)实际是一个空格——%c可以读入空格;str字符串变量为a(a后面即空格——结束)。