风行回首 发表于 2019-9-9 21:49:14

为啥说"^"非法,做操作数包含double型,但是改成PI*PI就行呢???

#include <stdio.h>
#define PI 3.14
#define C(r) 2*PI*r
#define S(r) (PI^2)*r
int main()
{
        int r;
        scanf("%d", &r);
        printf("半径为%d的圆 面积为%.2f 周长为%.2f\n", r, C(r), S(r));
        return(0);
}

superbe 发表于 2019-9-9 22:33:45

C语言中^表示的是二进制按位异或,不是乘方,比如2^3不等于8,而等于1,因为00000010^00000011=00000001。乘方可以用pow函数。

风行回首 发表于 2019-9-11 20:35:31

superbe 发表于 2019-9-9 22:33
C语言中^表示的是二进制按位异或,不是乘方,比如2^3不等于8,而等于1,因为00000010^00000011=00000001。 ...

好嘞 谢谢大佬
页: [1]
查看完整版本: 为啥说"^"非法,做操作数包含double型,但是改成PI*PI就行呢???