我对编码很新(目前正在学习C),我很困惑为什么在运行控制台时会出现这种错误。
这是我写的代码(这是我在主要运行一个简单的计算器程序调用的函数),我仍然没有完全完成我的开关,但我很确定它应该只用它! (我想)。
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.");
}
有谁知道可能是什么问题? :(
答案 0 :(得分:2)
问题是如何调用scanf_s函数。您应该将指针传递给您想要获得结果的变量,而不仅仅是变量本身。所以写
scanf_s("%d",&selectionNum);
而不是
scanf_s("%d",selectionNum);
对于代码中的所有scanf_s调用都是如此。