for循环的混合运算

想问一下:
i+=2;不是 等于i = i+2 吗,那么 s - =(i+=2) 不就是 s = s-(i=i+2)吗?
为什么我运行得到的是s= -2
而自己手算的却是-2,-4,-6到最后输出的是一个 -102呢, 我错在哪儿了。


#include "stdio.h"
void main()
{
    int i,t=1,s=0;
    for(i=1;i<=101;i+=2);
    {
        t=i;s=s+t;s-=(i+=2);
    } 
    printf("s=%d",s);
} 


6行末尾的分号导致7行只运行了一次。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    对不起,您的问题并不是一个具体的问题,需要更多的信息才能提供有效的答案。请您提供更具体的问题描述,例如:

    • 您在编写什么编程语言的程序?
    • 您遇到了什么具体的问题或错误?
    • 您的代码片段是什么样子的?
    • 您对于混合运算的理解是什么?
    • 等等。

    一旦您提供了更多的信息,我会尽力提供有帮助的建议和解决方案。


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