求大神分析。我这是输入一个数就累加,输入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: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;
}
} zltzlt 发表于 2020-5-1 12:19
count 要定义为全局变量。
好的,感谢大神分析{:5_109:} zltzlt 发表于 2020-5-1 12:19
count 要定义为全局变量。
但是为什么把y在开头定义,大神,我不太懂。。请分析一下我的代码为什么不行 东瓜皮6688 发表于 2020-5-1 12:27
但是为什么把y在开头定义,大神,我不太懂。。请分析一下我的代码为什么不行
每次调用 count(),y 都会重新赋值为 0,我们是希望它累加。 zltzlt 发表于 2020-5-1 12:31
每次调用 count(),y 都会重新赋值为 0,我们是希望它累加。
原来是这样啊,谢谢啦
页:
[1]