东瓜皮6688 发表于 2020-5-1 12:15:00

求大神分析。我这是输入一个数就累加,输入0就退出,但这个调用好像没有反应。

#include <stdio.h>
int count(int);
int main()
{
int x;
while(1)
{
      printf("input a number\n");
      scanf("%d",&x);
      count(x);
      if(x==0)
                {
                break;
                }
}
}

int count(int a)
{
int y=0;
if(a!=0)
      {
      y=y+a;
      }
else
      {
      printf("count is %d\n",y);
      return y;
      }
}

zltzlt 发表于 2020-5-1 12:19:13

本帖最后由 zltzlt 于 2020-5-1 12:31 编辑

y 要定义为全局变量。

#include <stdio.h>

int y = 0;
int count(int a);
int main()
{
    int x;
    while (1)
    {
      printf("input a number\n");
      scanf("%d", &x);
      count(x);
      if (x == 0)
      {
            break;
      }
    }
}

int count(int a)
{
    if (a != 0)
    {
      y = y + a;
    }
    else
    {
      printf("count is %d\n", y);
      return y;
    }
}

东瓜皮6688 发表于 2020-5-1 12:23:12

zltzlt 发表于 2020-5-1 12:19
count 要定义为全局变量。

好的,感谢大神分析{:5_109:}

东瓜皮6688 发表于 2020-5-1 12:27:22

zltzlt 发表于 2020-5-1 12:19
count 要定义为全局变量。

但是为什么把y在开头定义,大神,我不太懂。。请分析一下我的代码为什么不行

zltzlt 发表于 2020-5-1 12:31:35

东瓜皮6688 发表于 2020-5-1 12:27
但是为什么把y在开头定义,大神,我不太懂。。请分析一下我的代码为什么不行

每次调用 count(),y 都会重新赋值为 0,我们是希望它累加。

东瓜皮6688 发表于 2020-5-1 12:51:43

zltzlt 发表于 2020-5-1 12:31
每次调用 count(),y 都会重新赋值为 0,我们是希望它累加。

原来是这样啊,谢谢啦
页: [1]
查看完整版本: 求大神分析。我这是输入一个数就累加,输入0就退出,但这个调用好像没有反应。