저는 초보자이고 값이 적은 배열의 모든 원소의 합을 반환하는 재귀 알고리즘을 작성하려고합니다. x보다. "C4715 경고 : 'sumOfElement를'내가 코드를 실행하는 동안, 나는이 경고를 가지고, 비주얼 스튜디오를 사용하고x보다 작은 값을 가진 배열의 모든 원소를 합산하는 재귀 알고리즘
#include <iostream>
using namespace std;
int sumOfElement(int xList[],int x, int lengthOfArray){
int sum = 0;
if (lengthOfArray == 0)
return sum;
else
for (int i=0; i <= lengthOfArray; i++) {
if(xList[i] < x)
return sum + xList[i];
else
sumOfElement(xList,x,lengthOfArray-1);
}
}
int main() {
cout << "Size of Array: ";
int size;
cin >> size;
int *xList = new int[size];
//Inputing array.
cout << "Enter elements of array followed by spaces: ";
for (int i = 0; i<size; i++)
cin >> xList[i];
cout << "Enter the integer value of x: " <<endl;
int limit;
cin >> limit;
cout << "Sum of every element in an array with a value less than x: " << sumOfElement(xList,limit,size) << endl;
return 0;
}
: 여기
내 코드는 모든 제어 경로 값을 반환 "그리고 x의 정수 값을 입력하라고 요구할 때 프로그램은 항상 실행을 멈 춥니 다.내 코드에 어떤 문제가 있습니까?
'(lengthOfArray = 0)'보이지 않는 권리 – Blender
앞에'for' 루프는 반복하지 재귀의 예입니다 경우. 이 둘 사이에 엄격한 동등성이 있지만, 같은 결과는 아닙니다. 동일한 최종 결과를 얻을 수 있지만 다른 방식으로 수행 할 수 있습니다. 재귀에는 명시 적 루프가 없습니다. 함수 자체가 (아마도 다른 함수를 통해 간접적으로) 호출됩니다. – Steve314