如果i是浮点型(a可以是浮点或是整型),a=a/i和a*=1/i ;这两个算式没有区别!
如果a是浮点型,i是整型,则当i等于1时,两式相同,否则,a=a/i结果为一个小数,而a*=1/i结果为0。因为,1/i是两个整数相除,结果还是整数,当i的绝对值大于1时,1/i结果为0。
如果a,i都是整型,则两式只有特殊情况下相同:
i=1时,两式相同,结果为a
i等于1时,
|a|<|i|,两式相同,结果为0
否则,a=a/i 结果非0, a*=1/i结果为0(原因同2)
int i;
double s=0,a=1;
for(i=1;i<=n;i++)
{
a=a/i;
s+=a;
}
return s;
在这个里面,两个运行出来的结果不一样呢?!
c语言 a=a\/i和a*=1\/i区别
如果i是浮点型(a可以是浮点或是整型),a=a\/i和a*=1\/i ;这两个算式没有区别!如果a是浮点型,i是整型,则当i等于1时,两式相同,否则,a=a\/i结果为一个小数,而a*=1\/i结果为0。因为,1\/i是两个整数相除,结果还是整数,当i的绝对值大于1时,1\/i结果为0。如果a,i都是整型,则两...
在c语言中1<<i与i<<1的区别是什么
1<<i是把1左移i位,每次左移以为就是乘以2,所以1<<i的结果是1乘以2的i次方 i<<1就是把i左移一位,即i乘以2,假如i=5,最后结果就是5*2=10 至于为什么左移一位是乘以2,这是运算器内部机理,说起来就更多了,计算机做乘法运算的时候不是一个个的相加,而是用移位来实现的。>>这个符号...
c语言里面a[i]=!a[i]是什么意思呢?
如果 a[i]的值非0,则 !a[i] 的值为 0;所以执行 a[i] = !a[i] 后, a[i]的值,不是0就是1,即a[i]被二值化了。
c语言a*=是什么意思
a=i,就是说将i的值赋予*a,使指针a指向的地址中存入i的值。n=*n+1也很好理解,比如指针n指向的地中之前存入的值为5,则上式的意思就等同于*n=5+1,指针n指向的地址中将存入数值6。a++的意思就是a指向的地址向后移一位。比如之前a指向数组b[0]的地址,则之后将指向b。
c语言a>i++和a>++i的区别
第一个先比较a和i,然后i自加1 第二个i先自加,然后比较a和i自加之后的值的大小
*(a+i)与a[i]是一样的地址,为什么?
*(a+i)与a[i]是一样的地址应该是说他们指向的都是同一个内存单元,也就是说*(a+i)指向的值的地址,与a[i]指向的值的地址都是一样的。也就是说他们得到的值是一样的。这里不是说他们得到的是一个内存变量的地址还是内存变量的值,只是说明他们是一样的,得到的值一样,换句话说就是一样的地址。(一样...
C语言里a+=i和a=+i有什么区别
前者先计算a+i 再将其值赋给a,后者是a=++i吧?如果是的话就是先把 i 的值赋给 a 再使 i+1
C语言中,一个等号和两个等号的区别是什么?
表示不相等。3、C语言中 1个等号和2个等号的区别为:= 表示把一个值赋值给变量, == 表示比较两个变量是否相等 示例代码为:int a = 1, b = 3;int c = a; \/\/ 给变量c赋值,结果为:c = 1 int d = a == b; \/\/ a和b比较是否相等,不相等的话返回0,结果为:d = 0 ...
c语言书上说a(i)和*(a+i)等价,我觉得不对啊
c语言 语句中,方括号 不是标点符号,而是 运算符.c语言 语句中,有恒等式: a[i] = *(a+i)a[i][j] 等于 (a[i])[j] 套恒等式公式,化成 ( *(a+i) )[j], 再化成 * (*(a+i) + j);类似地 a[j][i] 等于 (a[j])[i],套恒等式公式,化成 ( *(a+j)...
C语言问题:a\/=a=a为什么等于0啊?(原来a等于12)
+号的运算符优先级比\/=高,所以程序 先计算a+a 式子为a\/=24,12除以24整数为0,所以答案为0,如果式子换成a=a%24,那么结果是12 \/表示结果取整数部分,%表示结果取余数部分