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

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日

悬赏问题

  • ¥15 高通安卓11提取完整线刷包软件,或者优博讯dt50顺丰刷机包
  • ¥20 C,有个译码器,换了信道就跑不出原来数据
  • ¥15 MIMIC数据库安装问题
  • ¥60 基于JTag协议开发Fpga下载器上位机,哪位大🐂有偿指导?
  • ¥20 全书网Java爬取数据
  • ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
  • ¥100 微信小程序跑脚本授权的问题
  • ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
  • ¥15 STM32串口接收问题
  • ¥15 腾讯IOA系统怎么在文件夹里修改办公网络的连接