使用C语言求圆的面积[已关闭]

qojgxg4l  于 2023-01-04  发布在  其他
关注(0)|答案(2)|浏览(166)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
我需要用c来求圆的面积,所以我写了这段代码,我得到了错误。
我尝试过的:

#include <stdio.h>

float area(float r)
{
    float area;
    
    printf("\nEnter the radius of Circle : ");
    scanf("%f", &r);
    area = 3.14 * r * r;
    printf("\nArea of Circle : %f", area);

    return area;
}
arknldoa

arknldoa1#

不用硬编码magic值3.14,而是使用一个常量.在我的主机上,如果定义了__USE_OPEN__USE_MISC__USE_GNU,math.h定义了M_PI.如果你的math.h没有定义,你可以这样定义它:

#ifndef M_PI
#    define M_PI 3.14159265358979323846
#endif

托管c程序的入口点是函数int main()(或int main(int, char *[])。这是您的主要问题。
area()接受一个float r参数,但您在函数本身中填充该变量。要么省略该参数,要么如此处所示让调用者执行I/O并传入参数并返回结果。
始终检查scanf()的返回值,否则您可能正在对未初始化的值进行操作。
由于输出流可能是行缓冲的,因此首选尾随\n而不是前导\n

#define __USE_XOPEN
#include <math.h>
#include <stdio.h>

float area(float r) {
    return M_PI * r * r;
}

int main() {
    printf("Enter the radius of Circle : ");
    float r;
    if(scanf("%f", &r) != 1) {
         printf("scanf failed\n");
         return 1;
    }
    printf("Area of Circle : %f\n", area(r));
}
sh7euo9m

sh7euo9m2#

每个托管的C程序都有一个必须命名为main的主函数。main函数用作程序执行的起点。
这个程序首先从用户那里读取圆的半径,然后使用公式area = pi * radius^2计算面积,最后打印结果。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void) {
  double radius;
  double area;

  // Read the radius of the circle from the user.
  printf("Enter the radius of the circle: ");
  if(scanf("%lf", &radius) != 1) // If user enter invalid stuff…
  {
    fprintf(stderr, "Error: invalid input.\n");
    return EXIT_FAILURE; // EXIT_FAILURE means error.
  }

  // Calculate the area of the circle
  area = M_PI * radius * radius;

  // Print the result
  printf("The area of the circle is: %f.\n", area);

  return EXIT_SUCCESS; // EXIT_SUCCESS means success.
}

相关问题