什么可以修复 C 中的模数错误
What could be a fix for a modulus error in C
我想就此寻求帮助。我要输入两个整数。除 "modulus" 之外的所有结果均已显示。第二个和第三个“%d”也保持原样。这是我 运行 我的程序时的结果。
Enter First Number: 10
Enter Second Number: 20
10 + 20 = 30
10 - 20 = -10
10 * 20 = 200
10 / 20 = 0
10 % %d = %d
如果这是我的程序,可能的修复方法是什么:
#include <stdio.h>
#include <conio.h>
main()
{
int num1, num2, sum=0, diff=0, prod=0, quot=0, mod=0;
clrscr();
printf("\nEnter First Number:");
scanf("%d",&num1);
printf("\nEnter Second Number:");
scanf("%d",&num2);
sum = num1 + num2;
diff = num1 - num2;
prod = num1 * num2;
quot = num1 / num2;
mod = num1 % num2;
printf("%d + %d = %d", num1, num2, sum);
printf("%d - %d = %d", num1, num2, diff);
printf("%d * %d = %d", num1, num2, prod);
printf("%d / %d = %d", num1, num2, quot);
printf("%d % %d = %d", num1, num2, mod);
getch();
}
%
字符用于表示printf
中的格式字符串。
使用 %%
打印 % 字符。现在,printf
需要格式字符串,但只有 space.
printf("%d %% %d = %d", num1, num2, mod);
问题在这里:
printf("%d % %d = %d", num1, num2, mod);
~~~~
当您在格式字符串中使用 % 时,printf 会将其视为转换规范的一部分(如 %d
)。如果它后面跟的不是有效规范,则结果是未定义的,所以任何事情都可能发生。
如果您需要在输出中使用文字 %,请在格式字符串中使用 %%
:
printf("%d %% %d = %d", num1, num2, mod);
我想就此寻求帮助。我要输入两个整数。除 "modulus" 之外的所有结果均已显示。第二个和第三个“%d”也保持原样。这是我 运行 我的程序时的结果。
Enter First Number: 10
Enter Second Number: 20
10 + 20 = 30
10 - 20 = -10
10 * 20 = 200
10 / 20 = 0
10 % %d = %d
如果这是我的程序,可能的修复方法是什么:
#include <stdio.h>
#include <conio.h>
main()
{
int num1, num2, sum=0, diff=0, prod=0, quot=0, mod=0;
clrscr();
printf("\nEnter First Number:");
scanf("%d",&num1);
printf("\nEnter Second Number:");
scanf("%d",&num2);
sum = num1 + num2;
diff = num1 - num2;
prod = num1 * num2;
quot = num1 / num2;
mod = num1 % num2;
printf("%d + %d = %d", num1, num2, sum);
printf("%d - %d = %d", num1, num2, diff);
printf("%d * %d = %d", num1, num2, prod);
printf("%d / %d = %d", num1, num2, quot);
printf("%d % %d = %d", num1, num2, mod);
getch();
}
%
字符用于表示printf
中的格式字符串。
使用 %%
打印 % 字符。现在,printf
需要格式字符串,但只有 space.
printf("%d %% %d = %d", num1, num2, mod);
问题在这里:
printf("%d % %d = %d", num1, num2, mod);
~~~~
当您在格式字符串中使用 % 时,printf 会将其视为转换规范的一部分(如 %d
)。如果它后面跟的不是有效规范,则结果是未定义的,所以任何事情都可能发生。
如果您需要在输出中使用文字 %,请在格式字符串中使用 %%
:
printf("%d %% %d = %d", num1, num2, mod);