我寫,其計算該隨機填充有0和1我必須寫兩個功能之間的值的陣列的組分的總和的碼,一個是迭代的,並且另一個是遞歸的。兩者都應該做同樣的工作。當我只打電話時,我寫的兩個功能工作正常。但是,如果我嘗試調用主函數中的兩個函數,則只能看到一個函數的結果,但看不到另一個函數的結果。另外,我的遞歸函數往往被稱爲一個額外的時間。我注意到,如果我把getch()作爲recursive_function()中的註釋。我知道我錯過了一些東西,但我無法弄清楚。謝謝你的幫助。這裏是代碼。我正在使用Dev-C++。不能顯示我的功能中的每一個的結果
#include <iostream>
#include<conio.h>
#include <stdlib.h>
using namespace std;
//headers of the thre functions
int random_value(int array[], int size);
int iterative_function (int array[], int size, int sum);
int recursive_function (int size, int array[], int index, int sum);
int main()
{
int size;int array[size]; int sum=0;
int index=0;
cout<<"enter the size of the array"<<endl;
cin>>size; //enter the size ofthe array...
random_value(array, size);
iterative_function (array, size, sum);
recursive_function (size, array, index, sum);
getch();
return 0;
}
int random_value(int array[], int size)
{ cout<<"here is the value returned by rand()"<<endl;
for(int i=0;i<size;i++)
{ array[i]=(rand() % (0-2));
cout<<array[i]<<endl;
}
}
int iterative_function (int array[], int size, int sum)
{
int i,j, number, value; i=0;
cout<<"from the iterative function"<<endl;
cout<<"------"<<endl;
for(i=0;i<size;i++)
sum=sum+array[i];
cout<<"sum of the array="<<sum<<endl;
getch();
return 0; //exit the function. Program terminated succesfully.
}
int recursive_function (int size, int array[], int index, int sum)
{
if(size>index)
{
sum=sum+array[index];
index++;
recursive_function(size, array, index, sum);
}
cout<<"from the recursive function"<<endl;
cout<<"------"<<endl;
cout<<"new sum= "<< sum<<endl;
getch();
return 0;
}
只是一個提示:在調用你的兩個函數之間忘記重置'sum'變量爲零。 – 2012-03-09 11:33:03
注意:調試器/跟蹤是你的朋友... – 2012-03-09 11:35:05
@KarolyHorvath注意:單元測試是你的朋友。 – 2012-03-09 11:51:21