0과 1 사이의 값으로 무작위로 채워지는 배열의 구성 요소 합계를 계산하는 코드를 작성했습니다. 두 개의 함수를 작성해야합니다. 하나는 반복이고, 다른 하나는 재귀 적입니다. 둘 다 똑같은 일을해야합니다. 내가 한 번만 호출 할 때 내가 작성한 두 함수는 잘 작동한다. 그러나, 내가 메인에서 두 함수를 호출하려고하면 하나의 결과 만 볼 수 있지만 다른 하나의 결과는 볼 수 없습니다. 또한, 재귀 함수는 하나의 여분의 시간을 호출하는 경향이 있습니다. recursive_function()에 getch()를 주석으로두면 알아 챘습니다. 나는 뭔가를 놓친다는 것을 알고 있지만, 나는 그것을 알아낼 수 없다. 당신의 도움을 주셔서 감사합니다. 여기 코드가 있습니다. 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 변수를 0으로 재설정하는 것을 잊지 마십시오. –
참고 : 디버거/추적은 친구입니다. –
@KarolyHorvath 참고 : 단위 테스트는 친구입니다. –