c语言练习题 写出下面程序的运行结果

C语言练习题6-17
写出下面程序的运行结果
这个运行不出来
求看看哪里有问题

img

实际录入电脑运行一下看结果。

你在main函数里使用之前声明一下fun函数就行了,目测是“ 27”

#include <stdio.h>
int fun(int a);//先在主函数上面声明函数
int main () {
   int a=4,s=0,i;
   for(i=1;i<=3;i++){
s+=fun(a);
  printf("%4d\n",s);
   }

 
}  
   int fun(int a)//定义函数要在主函数之外
{
static int b=3;
int c=0;
b++;c++;
return a+b+c;
}


书上可能省略了一点

fun()函数里 b 是静态变量,所以主函数里循环三次,调用fun()函数三次,b 的值分别是 4 5 6,而 a 的值始终为 4,c 的值始终为 1 ,所以 s = (4 + 4 +1) + (4 + 5 + 1) + (4 + 6 + 1) = 30

程序运行结果为 30
但这段代码写的有问题,所以你直接照着打是肯定运行不了的

  1. main 函数没有写返回类型及返回值
  2. fun 函数没有进行前置声明,main 函数中进行调用时会发生链接错误
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^