我将总结作业中遇到的问题:
“编写一个递归函数,该函数接收用户给出的char数组,将其向后打印,并且不返回任何内容。该函数必须结束该过程并在找到\ 0时返回”。不要使用string.h库,也不要使用指针。“
我设法设法做到了递归,但是我在函数定义上失败了。
答案 0 :(得分:0)
这是一种方法。使用递归函数,最大的问题是确保您具有正确的退出条件。如果您有任何问题,请告诉我。
#include <stdio.h>
void recursive_print(char* array) {
if(*array != '\0') {
recursive_print(&array[1]);
printf("%c", *array);
} else {
printf("\n"); // send a new line at the end to make it look better.
}
}
int main()
{
char string[] = "Hello";
recursive_print(string);
return 0;
}
答案 1 :(得分:0)
这无非是修改了Gardener的答案,而没有技术上使用指针(emem)(因为没有一点*
东西)。
#include <stdio.h>
void recursive_print(char array[]) {
if (array[0] != '\0') {
recursive_print(array + 1); //pointer arithmetic, but no '*', so not a pointer supposedly
printf("%c", array[0]);
}
else {
printf("\n"); // send a new line at the end to make it look better.
}
}
int main() {
char string[] = "Hello";
recursive_print(string);
return 0;
}
尽管,我要补充一点,如果您的讲师对指针的使用进行了这种(适得其反的)区分,您可能想记住,就像所有有关C的书都不是一样好,可以说同样的话教员。