c语言中,for循环中同样最后输出一个数,比如说根据条件12345,为什么有时输出12345,而有时输出15呢

2025-03-24 09:54:24
推荐回答(5个)
回答1:

你这个程式应该不会输出 12345 只会输出 15 因为你的for回圈只重复做 s=fun(i) 这行
最後在做 printf("%d\n",s) 所以输出 15 ,所以不懂为什麼你执行出来会这样
如果要输出12345的话程式main的部分要改成
main(){
int s,i,;
for(i=1;i<=5;i++) {
s=fun(i);
printf("%d\n",i);
}
printf("%d\n",s);
}
这样就会印出
1
2
3
4
5
15

回答2:

根据你这个程序,从主函数看起,当做到for循环时,调用fun()函数,并且一共调用5次,而fun()函数每次都返回t的值,而t又是静态的局部变量(前面加了static),静态变量在每次调用之后不释放,而是保留上一次调用的值,比如当x=1时,调用fun(1),此时t=t+x,就等于1,当下次调用fun(2)时,t的初值值就是1了,而不是2,当for循环的五次调用结束之后再输出s的值。

回答3:

不知道你问的是上什么。只有帮你分析一下了
上面的程序,变量t为静态的(static),只被定义一次,相当于计数器的功能,即上面的程序实质是求1 + 2 + 3 + 4 +5 = 15
下面的程序
求矩阵的下三角
(1 2 3
4 5 6
7 8 9)
即:b[0] = 7 + 3 = 10
b[1] = 8 + 6 = 14
b[3] = 9 + 9 = 18

回答4:

把你代码粘上来吧,你这么说,除非出过同样问题,否则很难有结果......

回答5:

注意t是静态变量