今天在nyoj上做一道关于最大岛屿时,我遇到了一个问题,就是在dfs后我的一个全局变量没有发生变化,结果让我调了半天,最后才发现问题。
希望你能从我的错误中找到你想要的答案。
如下代码
#include<stdio.h>
int num;
void dfs(int cur,int num)//注意虽然这里变量也是num但它却是这个函数的局部变量
{
if(cur)
num++;
return;
}
int main(void)
{
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
num = 0;
dfs(i,num);
printf("%d ",num);//s输出的结果就是num没有变化
}
}
上面就是我错误的方式,之所以num没变化是因为全局变量和dfs中的局部变量是两个变量,只不过二者的名字定义为一样了,这里我犯了这个白痴的错误。