Tag: 递归

使用递归查找数组中的最小数字?

int i = 0; int min = x[i]; while ( i < n ){ if ( x[i] < min ){ min = x[i]; } i++; } return min; 我编写了迭代表单来查找数组的最小数量。 但是我想编写一个带递归的函数。 请帮忙!

这段代码到底发生了什么?

我有一个包含递归函数的代码。 我在递归上浪费了很多时间,但我仍然无法得到它: #include void count(int); int main() { int x=10,z; count(x); } void count(int m) { if(m>0) count(m-1); printf(“%d”,m); } 当参数为10调用第一次count ,它满足条件,然后启动递归部分。 当函数调用自身时会发生什么? 我不明白。 请参考堆栈进行解释。

C中的意外输出(递归)

int main(void) { static int=5; if(–i) { main(); printf(“%d”,i); } } 以上程序的输出是— 0000 但我认为应该是— 1234 我不知道为什么?请帮助我。

在递归函数的情况下获得的值

任何人都可以向我解释这个程序输出背后的原因是0 0 0 0 0吗? 这里我们使用static variable var其值不会因函数调用而改变。 在递归调用期间, var的值将为4,3,2,1。 当var变为零时,递归终止并且控制转到printf语句。 为什么输出不是1,2,3,4 ? main(){ static int var=5; if(–var) main(); printf(” %d “,var); } 再次,如果你使用if条件var–那么程序输出将是-1 -1 -1 -1 -1 -1 ?

链表反递

我正在查看斯坦福图书馆的以下代码: void recursiveReverse(struct node** head_ref) { struct node* first; struct node* rest; /* empty list */ if (*head_ref == NULL) return; /* suppose first = {1, 2, 3}, rest = {2, 3} */ first = *head_ref; rest = first->next; /* List has only one node */ if (rest == NULL) return; /* put the first […]

如何通过指针处理矩阵中的子矩阵?

我有一个大小为n的矩阵。 举个例子: 我的递归函数对位于矩阵边界的元素进行处理。 现在我想在内部矩阵上调用它(递归调用): 这是我的递归函数的原型: void rotate(int** mat, size_t n); 我知道2D数组是数组中的数组。 我知道*(mat+1) + 1)将给出应该是我的新矩阵的基地址的内存地址。 这是我试过的: rotate((int **)(*(mat+1) + 1), n-2) 但它不起作用,当我尝试使用[][]访问它时,我得到一个段错误。