C语言相关问题12345678

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<stdio.h>
void f() {
    static int a = 200;
     int b = 1;
    ++b;
    printf("%d+%d=%d\n", a, b, a+b);
    a += 200;
    
}
      main()
{
    int i;
    for (i= 1; i <= 5; i++)
        f();
}

运行结果及报错内容

400+2
600+2
800+2
1000+2
怎么把2变成+1
+2
+3
+4

我的解答思路和尝试过的方法
我想要达到的结果

怎么把+2变成
+1
+2
+3
+4

改正如下:

#include<stdio.h>
void f() {
    static int a = 200;
    static int b = 1;
    ++b;
    printf("%d+%d=%d\n", a, b, a+b);
    a += 200;
    
}
      main()
{
    int i;
    for (i= 1; i <= 5; i++)
        f();
}

希望对题主有所帮助!可以的话,帮忙点个采纳!

啥意思,还不行么?

将b声明为static即可,代码修改如下

#include<stdio.h>
void f() {
    static int a = 200;
    static int b = 1;   //b声明为static
    printf("%d+%d=%d\n", a, b++, a + b);
    a += 200;

}
main()
{
    int i;
    for (i = 1; i <= 5; i++)
        f();
}