|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
unsigned int i , j ; /* Defined the variables as unsigned int*/
long int k;
printf("This program is to show the difference between (-i)/j and -(i/j) when using two positive integer variables.\n");
printf("Please input two positive integer numbers for demonstration of the result (Separated with a comma): ");
scanf("%u,%u", &i , &j);
k = (-i) ;
k /= j;
printf("the result of (-i)/j is %d\t%d\t%d\n", (-i), j , k);
printf("The result of -(i/j) is %d\n", -(i / j));
return 0;
}
运行结果k /= j不对,不能理解。不希望改边i,j的unsigned定义。
本帖最后由 傻眼貓咪 于 2023-1-22 10:33 编辑
不要直接写成 (-i),不要把 C 语言想成 "人类可读性语言"(我不知道这叫什么,大概是这样的意思)
unsigned i 和 j 应该写成:
(-i),正确写法应该是 -1 * (long int)i // 字面量类型需改成 long int
-(i / j),正确写法应该是 -1 * (long int)(i / j)
|
|