C语言程序除零错误:代码分析与修复
你的代码存在以下问题:
-
'scanf_s' 函数调用错误:在使用 'scanf_s' 函数时,需要指定输入的整数变量的内存大小。可以使用 '%d' 或 '%ld' 作为格式控制符,后面加上变量名和 'sizeof' 运算符来指定变量的内存大小。例如,'scanf_s("%d%d", &a, &b)' 应该改为 'scanf_s("%d%d", &a, sizeof(a), &b, sizeof(b))'。
-
'printf' 函数格式错误:在 'printf' 函数中应该使用 '%d' 格式控制符来输出整数,而不是 '%f'。所以,'printf("%f", r)' 应该改为 'printf("%d", r)'。
下面是修正后的代码:
#include <stdio.h>
int main() {
int a, b;
printf("Enter two numbers:\n");
scanf_s("%d%d", &a, sizeof(a), &b, sizeof(b));
if (b == 0) {
printf("cannot divide by zero.\n");
} else {
int r = a / b;
printf("%d", r);
}
return 0;
}
在修正后的代码中,我们使用了 'scanf_s' 函数并指定了输入整数变量的内存大小,同时修正了 'printf' 函数的格式控制符,以正确输出整数。
运行程序时,用户需要输入两个整数,程序会根据输入的数值计算并输出商。如果除数为零,则会输出错误信息。
原文地址: https://www.cveoy.top/t/topic/OXA 著作权归作者所有。请勿转载和采集!