诗岑 2020-02-01 15:27 采纳率: 93%
浏览 1344
已采纳

请问这一行有什么bug吗?

代码中第五行出现了问题:

#include <stdio.h>
main(){
    int a, b,z;
    scanf_s("%d", "%d" ,& a, &b);
    z = max(a,b);
    printf("%d", z);
}
int max(int a, int b) {
    if (a > b)return a;
    else return b;
}

警告内容为:

警告 C6328 大小不匹配: 已将“char”作为 Param(2) 传递,但需要使用“32 bit operand”来调用“scanf_s”。这表示可能存在严重错误。若针对像 scanf 这样的函数报告此信息,可能表示发生缓冲区不足或溢出。

警告 C6271 向“scanf_s”传递了额外参数: Param(3) 未由格式字符串使用。

请问是什么意思?如何解决?

  • 写回答

3条回答 默认 最新

  • 智者知已应修善业 2020-02-01 17:37
    关注

    scanf_s("%d", "%d" ,& a, &b);要按人家规定的格式写 scanf_s("%d,%d" ,& a, &b);
    另外还有声明函数原型或把函数放在main前面

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

报告相同问题?

悬赏问题

  • ¥30 matlab解优化问题代码
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
  • ¥15 Jenkins+k8s部署slave节点offline