2015-05-21 94 views
0

我試圖創建一個遞歸方法,它將顯示從一個到一個指定的最大數字n的平方數字序列。演示文稿的格式將首先顯示奇數序列的平方,從最大的奇數(< = n)開始到最小的奇數(1),然後顯示偶數平方,從最小的偶數開始數字(2)到最大偶數(< = n)。我收到一條錯誤消息,說明正在使用未初始化的局部變量'upperB'。有任何想法嗎?平方根遞歸

#include "stdafx.h" 
#include <iostream> 
#include <iomanip> 
#include <math.h>\ 
using namespace std; 
int main() 
//Input a,b are constants,lower and upper approximation points as well as 
//precision value N 
{ double a, b, N, lowerB, upperB; 
cout << "Give me a value for a: "; 
cin >> a; 
cout << "Give me a value for b: "; 
cin >> b; 
cout << "Give me a precision :"; 
cin >> N; 
cout << " Give me lower and upper approximations: "; 
cin >> lowerB, upperB; 
cout << "The root is : " << 
RootFinderSMNEW(a, b, lowerB, upperB, N) << endl; 
system("pause"); 
return 0; 
    } 

double f(double x, double a, double b) 
{ 
    return sin((a* x)/(1 + x*x))*atan(b*x) + atan(x); 
} 

double RootFinderSMNEW(double a, double b, double lowerB, double upperB, int N) 
{ 
    double f_left = f(lowerB, a, b); 
    double now = lowerB + N; 
    double f_right = f(now, a, b); 
    while (f_left * f_right > 0 && now < lowerB) 
    { 
     f_left = f_right; 
     now += N; 
     f_right = f(now, a, b); 
    } 
    return now - N/2; 
} 
+1

通過一點努力,您可以將代碼減少到仍然重現錯誤的六行。這種準備[最小完整示例](http://stackoverflow.com/help/mcve)的能力是一項至關重要的技能,比任何一個錯誤修復更有價值。 – Beta

+0

如果答案解決了您的問題,則應該單擊複選標記以將問題標記爲已完成。讓其他人知道它已完成。 – Almo

回答

4

你的意思是

cin >> lowerB >> upperB; 

cin >> lowerB, upperB; 

你正在做什麼是不是把一個值upperB,所以它不是初始化。這正是錯誤信息所說的。