C语言允许在{}内定义和外部同名的变量,此时隐藏了外部变量
所以此时外部的 maxn 并没有赋值
你for循环外部有同名的
【以下回答由 GPT 生成】
问题出在多余的"int"关键字导致了局部变量的覆盖。
代码示例中的"int max_num = INT_MIN;"声明了一个局部变量max_num,并给其赋值INT_MIN。
在for循环内部,通过比较arr[i]和max_num的大小来更新max_num的值。
然而,将多余的"int"关键字删除后,max_num变成了全局变量,而不是局部变量。全局变量在声明时会被自动初始化为0。所以当比较arr[i]和max_num的大小时,初始的max_num为0,比任何正数小,所以无法更新max_num的值,导致结果错误。
【相关推荐】