.29. 2022-01-07 09:22 采纳率: 50%
浏览 151
已结题

C语言使用scanf输入数据后,显示访问冲突怎么解决?

问题:


# include<stdio.h>
int main()
{
    struct Student
    {
        int num;
        char name[29];
        int score;
    }a, b;
    printf("请输入第一个学生的学号 姓名 分数:");
    scanf_s("%d,%s,%d",&a.num,&a.name,&a.score,sizeof(a.name));
    printf("请输入第二个学生的学号 姓名 分数:");
    scanf_s("%d,%s,%d",&b.num,&b.name,&b.score,sizeof(b.name));
    if (a.score > b.score)
        printf("较高分学生信息:\n num:%d\n name:%s\n score:%d\n", a.num, a.name, a.score);
    else if (a.score == b.score)
        printf("两学生成绩相同,不输出较高分学生信息。");
    else
        printf("较高分学生信息:\n num:%d\n name:%s\n score:%d\n", b.num, b.name, b.score);
    return;
}

运行后输入第一行数据,回车:

img

然后就显示冲突了:

img

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-01-07 09:39
    关注

    第12行修改为:scanf_s("%d %s %d", &a.num, a.name, sizeof(a.name), &a.score);
    第14行修改为:scanf_s("%d %s %d", &b.num, b.name, sizeof(b.name), &b.score);
    输入时,三个参数间以 空格符 间隔:1001 王五 90

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月15日
  • 已采纳回答 1月7日
  • 修改了问题 1月7日
  • 创建了问题 1月7日

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格