Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 函数中的Printf更改main中输出的值_C - Fatal编程技术网

C 函数中的Printf更改main中输出的值

C 函数中的Printf更改main中输出的值,c,C,我完全被printf()函数的意外行为所迷惑。我有两个函数main()和dfs()。当我在dfs()函数中添加printf()语句时,我在main()中获得所需的输出,但当我在dfs()函数中不添加printf()语句时,我得到的输出为0 功能-主 int main() { freopen("input.txt","r",stdin); scanf("%d",&N); for(int i=1; i<=N; i++) scanf("%lld",

我完全被
printf()
函数的意外行为所迷惑。我有两个函数
main()
dfs()
。当我在
dfs()函数中添加
printf()
语句时,我在
main()
中获得所需的输出,但当我在
dfs()
函数中不添加
printf()
语句时,我得到的输出为
0

功能-主

int main()
{
    freopen("input.txt","r",stdin);
    scanf("%d",&N);
    for(int i=1; i<=N; i++)
        scanf("%lld",&P[i]);
    for(int i=1; i<=N; i++)
        scanf("%lld",&A[i]);
    for(int i=1; i<=N; i++)
        scanf("%lld",&H[i]);
    dfs(1,2,0);  minans += A[1];
    printf("**%lld\n",minans);
    return 0;
}
intmain()
{
freopen(“input.txt”,“r”,stdin);
scanf(“%d”和“&N”);
对于(int i=1;i使用:

在您的功能和主要用途中:

printf("**%lld\n",minans);

如果
语句为
false,则函数返回的值为零。因此,在这种情况下,行为未定义

您可以
minans
值从函数返回到
main
,然后在
main
中打印它


注意-我看不到程序中任何地方声明了
minans

未定义的行为。如果未从
dfs
返回值,则需要启用更多编译器警告。另外,在dfs的第一行中,我将返回一个值。@BaummitAugen:我该怎么做?返回值仍将被丢弃。..doesn无法解决从未声明或初始化的
minans
问题。@vishal:请阅读之前的完整帖子。我提到minans被初始化为111111111。@user3811219声明在哪里?@user3811219不,
minans
没有声明或初始化。你不能告诉我们代码做一件事,然后发布代码发布你的真实代码,否则你的问题将被关闭。这就解释了这种异常行为,当我使用printf时,它返回printf返回的值。所以一切都被它覆盖了,当我删除它时。printf没有返回任何东西。(谢谢大家!)
minans
未声明或初始化。
return minans;
printf("**%lld\n",minans);