大侠们,这题太难了,来帮帮我啊!我是新手!

来源:百度知道 编辑:UC知道 时间:2024/06/02 05:15:37
6、下面程序运行时输入5,4则对应的输出结果是 。
int sum(int k )
{static int y=0;int i;
for(i=1;i<=k;i++)y+=i;
return y;
}
main()
{ int m,n;
scanf(“%d,%d”,&m,&n);
printf(“%d\n”,sum(m)+sum(n));
}
(61) A、54 B、0 C、40 D、50
、下面程序运行时输入5,4则对应的输出结果是 D 。
int sum(int k )
{static int y=0;int i;
for(i=1;i<=k;i++)y+=i;
return y;
}
main()
{ int m,n;
scanf(“%d,%d”,&m,&n);
printf(“%d\n”,sum(m)+sum(n));
}
(61) A、54 B、0 C、40 D、50
怎么酸的啊???

这个题目本意应该是 50 吧
还有你这个代码有问题
printf(“%d\n”,sum(m)+sum(n)); 这一句输出只有sum(m)
你用一个变两 int total;
total=sum(m)+sum(n);
printf(“%d\n”,total);
看看结果

回答补充:我算错了 没看到 y 是定义为 static
结果是40 但是照题目的代码运行结果确实不对
把代码改一下,意思和题目一样 结果是40 请高人指点下
#include <stdio.h>
int sum(int k )
{ static int y=0;int i;
for(i=1;i<=k;i++)y+=i;
return y;
}
main()
{ int m,n;
scanf("%d",&m);
int total=0;
total+=sum(m);
scanf("%d",&n);
total+=sum(n);
printf("%d\n",total);
}

C 40

sum(m)=1+2+3+4+5=15
sum=15+1+2+3+4=25
最后得40.。。

你确定不是40吗?
怎么算都是40啊

应该是40吧

其实这道题主要是static 这个表示静态变量的东西,他会把每次的Y都保留下来,不再进行初始化
sum(m)=1+2+3+4+5=15
sum(n)=15+1+2+3+4=25
所以等于40