求解下面两张图中,C语言中for循环后面加和不加大括号所带来的不同效果的原因解释,希望可以说明白一点

加大括号后排序是错误的

img


不加括号排序就正确了

img


想理解for循环后不加括号和加括号不一样效果的原因

不加大括号只会循环for后面的一条语句,加了大括号才能循环整个大括号里面所有的语句,这是为了表明for循环的作用域

当你内层的for不加括号时,循环里只包含if和if下面的一行代码(因为你if也没有加括号)
加了括号,那么后面三句交换两个变量值的代码就也在for里面了
当然这样逻辑也是错误的
其实应该是if加大括号才对