Онлайн компилятор C

#include <stdio.h> int main() { int a,b,i; scanf("%d%d",&a,&b); if(a<b)i=b;else i=a; for(;i<=(a>b?a:b);i++) printf("%d",i*i*i); return 0; }
这段代码试图输出从a到b之间每个整数的立方,但存在逻辑错误。它先找出a和b中较大的数赋值给i,然后循环条件却是i小于等于较大的数,这样循环只会执行一次。

- 循环变量i的初始值应该设为a和b中较小的那个数,而不是较大的数。
- 循环条件中的上限应该是a和b中较大的数,但当前写法虽然正确,却因为初始值错误导致循环只运行一次。