调试断言失败?

时间:2018-01-29 20:14:54

标签: c assertion

我对编码很新(目前正在学习C),我很困惑为什么在运行控制台时会出现这种错误。

The Error that I get.

这是我写的代码(这是我在主要运行一个简单的计算器程序调用的函数),我仍然没有完全完成我的开关,但我很确定它应该只用它! (我想)。

void part2() {

    printf("Welcome to Part 2!\n\n\nThis is a basic calculator!\nPlease select one of the following options:\n\n");
    printf("1) - Addition\n");
    printf("2) - Subtraction\n");
    printf("3) - Multiplication\n");
    printf("4) - Division\n");
    printf("0) - Exit Program\n\n");


    int selectionNum = 0;

    float operand1 = 0;
    float operand2 = 0;
    float result = 0;

    scanf_s("%d",selectionNum);

    switch (selectionNum) {

        case '1' :

            printf("_ + _ = _\n");
            printf("Please enter the first addend: ");
            scanf_s("%f", operand1);
            printf("\n\n");

            printf("%f", operand1);
            printf(" + _ = _\n");
            printf("Please enter the second addend: ");
            scanf_s("%f", operand2);
            printf("\n\n");

            result = operand1 + operand2;

            printf("%f", operand1);
            printf(" + ");
            printf("%f", operand2);
            printf(" = ");
            printf("%f", result);

            break;

        default :

            printf("\n\nYou entered an invalid option! :(\n Try again!");

    }

    printf("done.");

}

有谁知道可能是什么问题? :(

1 个答案:

答案 0 :(得分:2)

问题是如何调用scanf_s函数。您应该将指针传递给您想要获得结果的变量,而不仅仅是变量本身。所以写

scanf_s("%d",&selectionNum);

而不是

scanf_s("%d",selectionNum);

对于代码中的所有scanf_s调用都是如此。