Ciahf 2022-08-30 19:13 采纳率: 100%
浏览 123
已结题

vs2022,运行结果总是有-858993460出现,这咋回事啊,求解答

vs2022,运行结果总是有-858993460出现
代码如下,这咋回事啊,求解答


#include <stdio.h>
int main()
{
    int a, b, c, d;
    int t;
    printf("please input four numbers:\n");
    scanf_s("%d,%d,%d,%d", &a, &b, &c, &d);
    if (a > b) {
        t = a; a = b; b = t;
    }
    if (a > c) {
        t = a; a = c; c = t;
    }
    if (a > d) {
        t = a; a = d; d = t;
    }
    if (b > c) {
        t = b; b = c; c = t;
    }
    if (b > d) {
        t = b; b = d; d = t;
    }
    if (c > d) {
        t = c; c = d; d = t;
    }
    printf("%d,%d,%d,%d\n", a, b, c, d);
    return 0;
}

img

  • 写回答

4条回答 默认 最新

  • a5156520 2022-08-30 19:20
    关注

    试下在输入四个数字时,输入法切换成英文输入法,因为scanf_s里面的说明符是英文状态下的逗号, 输入的格式和scanf_s里面的说明符不匹配会导致从输入获取数据异常,我在Dev-C++用下面的代码测试的,把scanf_s改为了scanf().

     
    #include <stdio.h>
    int main()
    {
        int a, b, c, d;
        int t;
        printf("please input four numbers:\n");
        scanf("%d,%d,%d,%d", &a, &b, &c, &d);
        if (a > b) {
            t = a; a = b; b = t;
        }
        if (a > c) {
            t = a; a = c; c = t;
        }
        if (a > d) {
            t = a; a = d; d = t;
        }
        if (b > c) {
            t = b; b = c; c = t;
        }
        if (b > d) {
            t = b; b = d; d = t;
        }
        if (c > d) {
            t = c; c = d; d = t;
        }
        printf("%d,%d,%d,%d\n", a, b, c, d);
        return 0;
    }
    
    

    img

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

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 创建了问题 8月30日

悬赏问题

  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件