재귀를 추가하려면 문자열의 역순 함수를 수정하십시오. 불행히도, 내 프로그램은 계속 날아 간다.재귀를 사용한 후의 프로그램 블로크
Visual Studio에서 내 코드를 밟았으며 어떤 이유로 시계 창이 i가 문자열 길이 (즉 while 루프를 종료하는 종료 조건)와 같다고 표시됩니다. 나는 지난 번에 그걸 밟았고, 이제는 내가 문자열 길이보다 하나 더 작다고 말한다. 그런 다음 그것은 while 루프에 영원히 남습니다.
나는이 소리가 혼란 스럽다는 것을 알고 있으므로 예제를 제공 할 것입니다. "Spongebob"을 입력하면 Spongebob의 길이가 9이고, "bobegnopS"가 인쇄되고 문자열 길이가 증가합니다.)하지만 지금은 8이라고 말합니다. 단지 9시에) while 루프를 종료하지 마십시오. 여기
내 ReverseString()의 함수 : 루프 내부case 3:
//Learn By Doing 16.6
{
char string[BUFFER_LENGTH];
bool stringReversed = false;
int base = 0;
int exponent = 0;
std::cout << "\nEnter base: " << std::endl;
std::cin >> base;
std::cout << "\nEnter exponent: " << std::endl;
std::cin >> exponent;
//Print pow
NewLine();
std::cout << base << " to the " << exponent << " is " << pow(base, exponent);
//Reverse string using recursion
std::cout << "\nEnter string: " << std::endl;
std::cin >> string;
NewLine();
int stringLength = strlen(string);
int i = 0;
ReverseString(string, stringReversed, stringLength, i);
}
ReverseString 함수에서 반환 지점이 필요합니다. – billz
재귀 함수이기 때문에 ReverseString을 사용할 수 없다는 것을 의미합니까 ?? 그래서 그것을 char * ReverseString 문자 포인터를 반환하게해야합니까 ?? – MrPickle5
반환 유형을 의미하지는 않지만 void 함수는 여전히 반환 할 수 있습니다. – billz