このCプログラムに負の数が入力されたときに、このプログラムがモジュラス演算に対して間違った答えを返す理由を誰かが理解するのを手伝ってくれますか?
問題の原因は機能にあると確信していscanf
ます。正の整数を使用すると、正しい答えが得られます。
コードは以下のとおりです。
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int answer = 0;
puts("enter two number to find the modulus of...");
if (scanf("%3d %3d",&num1,&num2) != 2)
puts("something went wrong");
else {
answer = (num1 % num2);
printf("the modulus of %d and %d is: %d\n", num1, num2, answer);
}
}