带点数的数学任务

Mathematical task with point numbers

我刚开始学习C编程。

我想写一个程序来解决这个数学问题(1/2*r2*3.14)

这是我写的代码:

#include <stdio.h>
#include <conio.h>
main()
{
int r=5;
float sum;
sum = 1/2*r^2*3.14;
printf("%f", sum);
getch();
} 

但是有一个错误,我不知道是什么错误。 起初我以为数字 3.14 有问题,但是当我将它更改为 3 时程序运行但答案是 6.0000 但它应该是 37.5

^ 是按位异或运算符。你必须为你的目的使用 pow()

sum = 1.0/2.0*pow(r,2)*3.14;

您的代码将为您提供 6.000。因为 ^ 用作 xor 运算符

1/2*r^2*3 = (0)d ^ (6)d =  (000)b ^ (110)b = (110)b = (6)d

但是,3.14 而不是 3 会给你错误

1/2*r^2*3.14

因为,Xor 运算符不将 double 作为操作数

^ 运算符不是为了提升你可以显式写的

#include <stdio.h>
#include <conio.h>
main()
{
    int r=5;
    float sum;
    /* 1/2 * r^2 * pi <- this is the expression */
    sum = 1.57 * r * r;
    printf("%f", sum);
    getch();
} 

该表达式在程序中没有任何意义,除非有人阅读它,因此您可以添加注释并直接写入值。

如果您要提升到更高的幂,只需使用 pow() 函数即可。

此外,如果您跳过 .0,编译器会将值假定为整数,并且 1/20.5 截断,它会产生 01./2也可以,但不是 1/2.

在 C 中没有用于幂计算的运算符。 ^ 用作 XOR 运算符。您需要使用库函数 pow 进行功率计算。

sum = 1.0 / 2 * pow(r,2) * 3.14;  

请注意,我将 1/2 更改为 1.0/2,因为 1/2 将始终给出 0,而您将得到的结果是 0.