c语言、改错,⼀**********FOUND**********⼀下面是错误的语句,第二处错误可以改为3.14159* r *r⼀2;么

2025-02-26 13:00:45
推荐回答(2个)
回答1:

#include 
#include   

/**********FOUND**********/
double fun(float r)
{
  double s;
  /**********FOUND**********/
  s=1.0/2*3.14159* r * r;
  /**********FOUND**********/
  return s;
}

void main()
{
  float x;
  printf ( "Enter x: ");
  scanf ( "%f", &x );
  printf (" s = %f\n ", fun ( x ) );
}

定义函数,一定要写参数的类型!因为函数调用必须根据函数名与参数类型来决定调用哪个函数,所以一定要写参数类型!


1/2=0,整型相除得到的是整型,而且是直接舍去小数位,所以必须使用1.0/2或者1/2.0才能得到正确的浮点数,对于两个int a,b;要得到a/b的准确值可以使用(float)a/b;


你这个题目返回的是面积,不是半径,所以是return s;


另外3.14159* r *r/2是可以的,能得到准确值!

回答2:

#include
#include

/**********FOUND**********/
double fun( float r)
{
double s;
/**********FOUND**********/
s=0.5 * 3.14159 * r * r;
/**********FOUND**********/
return s;
}

void main()
{
float x;
printf ( "Enter x: ");
scanf ( "%f", &x );
printf (" s = %f\n ", fun ( x ) );
}