关于c中写入位置 0x00DF0000 时发生访问冲突的问题

1.在做C的程序时输入如何画断,如何告知系统我输入完成了
2.在做字符数组的写入时也是报的同样的错

#include "stdafx.h"
#include"windows.h"
struct book
{
    float dingj;
    char name[20];
    
};

int main()
{
    struct book book1,max,min;
    int i;
    printf("enter No.1\n");
    scanf_s("%s%f\n", &book1.name,&book1.dingj);
    max = book1;
    min = book1;
    for (i = 2; i < 10;i++)
    {
        printf("enter No.%d\n",i);
        scanf_s("%s%f\n", &book1.name, &book1.dingj);
        if (book1.dingj > max.dingj)
            max = book1;
        if (book1.dingj < min.dingj)
            min = book1;
    }
    printf("max=%s %.2f", max.name, max.dingj);
    printf("min=%s %.2f", min.name, min.dingj);
    system("pause");
    
    return 0;
}

图片描述

我的输入是这样的
enter No.1

  1. 10.5 (然后回车,他就报错了)

请大神解惑,谢谢!!

阅读 3.4k
2 个回答
✓ 已被采纳新手上路,请多包涵

scanf_s("%s%fn", &book1.name,&book1.dingj);

首先看到这行,book1里面有个数组叫name,那么book1.name应该就是地址了吧?不用在前面加取地址符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进