-2
float squareRoot(float value, float error){

    float estimate;
    float quotient;
    estimate = 1;
    float difference = abs(value - estimate * estimate);
        while (difference > error){
            quotient = value/estimate;
            estimate = (estimate + quotient)/2;
            difference = abs(value - estimate * estimate);
        }
        return difference;
}

メイン関数で「x is undeclared」(変更できません) と言い続けるため、関数がコンパイルされません。何が間違っていますか?

int main(){
  printf("\nsquare root test 1: enter a number\n");
  scanf("%f",&x);
  printf("root(%.2f) = %.4f\n", x, squareRoot(x, .001));

  getchar();
  return 0;
}
4

3 に答える 3

1

メイン関数で x を宣言できない場合は、グローバル スコープで宣言します。

float x;

int main( ) {
  ...
}
于 2013-03-16T07:56:47.950 に答える
1

最初にxを宣言して、メイン関数内で使用します

float x;

このようにスコープ内で使用するか、グローバルに宣言できます

int main(){
  float x;
  printf("\nsquare root test 1: enter a number\n");
  scanf("%f",&x);
  printf("root(%.2f) = %.4f\n", x, squareRoot(x, .001));

  getchar();
  return 0;
}
于 2013-03-16T05:12:59.127 に答える
0
int main(){
  float x ; /* You missed this :-D */
  printf("\nsquare root test 1: enter a number\n");
  scanf("%f",&x);
  printf("root(%.2f) = %.4f\n", x, squareRoot(x, .001));

  getchar();
  return 0;
}
于 2013-03-16T08:02:01.670 に答える