📄 math.c
字号:
/* Oki bug report [OKI004](gcc005) The following computation is no work. -1 / 1 => 1 (correct -1) -1 % 2 => 1 (correct -1) */#include <stdio.h>main (){ long l1, l2, l6; auto long l3; long oza1, oza2, oza; l1 = 1; l2 = 2; l3 = -1; l6 = 6; /*** test 1 ***/ oza = ((l3 / ((l1)--)) | (l6 <= (l3 % l2))); printf ("test 1 has a result of %d.\n", oza); if (oza != -1) fail ("divide test [OKI004]"); else pass ("divide test [OKI004]"); l1 = 1; /*** test 2 ***/ oza1 = (l3 / ((l1)--)); oza2 = (l6 <= (l3 % l2)); oza = oza1 | oza2; printf ("test 2 has a result of %d.\n", oza); if (oza != -1) fail ("modulos test [OKI004]"); else pass ("modulos test [OKI004]"); fflush (stdout); test_1();}/* 32760 / (1) = 32760 32760 / (-1) = 32760 -------> ERROR, same as you said. 32760 / (2) = 16380 32760 / (-2) = -2147467268 ----> ERROR 32760 / (3) = 10920 32760 / (-3) = -1431644845 ----> ERROR 32760 / (4) = 8190 32760 / (-4) = -8190 */test_1(){ int value, i, j; i = 32760; j = 1; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value); j = -1; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value); j = 2; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value); j = -2; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value); j = 3; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value); j = -3; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value); j = 4; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value); j = -4; value = i / (j); printf ("%d / (%d) = %d\n", i, j, value);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -