int main(int i, int j) {
for (i=4; i>0; i--) {
j=i;
while (j>=0) {
printf("X");
j--;
}
printf("%lf\n", (1.0*(i)) / (j+2));
}
}
输出:
XXXXX 4.0
XXXX 3.0
XXX 2.0
XX 1.0
答案 0 :(得分:1)
>=
标志可能让您感到困惑。代码在第一行打印出X
5次而不是4次(如果这是你的意思)是因为一旦j = 0
,循环再次继续。
基本上,j
循环结束后while
的值为-1
。将它替换为你的最后一个printf
,输出的其余部分是有道理的。
如果您将>=
更改为>
,代码将生成正确的输出。
答案 1 :(得分:1)
为什么第一行打印5“X”? &安培;为什么第一个数字是4.0?
由于,
j取值j = 4,3,2,1,0。每次打印X因此都是5X。
在那个循环之后,j变为-1。
现在1.0*(4) /(-1+2)
=> (4.0/1)
=> 4.0
因此输出为XXXXX 4.0
答案 2 :(得分:0)
嗯,j设置为i
,因此X
检查会打印j+1
>= 0
次。然后将i
除以j
,现在为-1 + 2.现在为1,得到i
,然后在换行开始前将其打印到屏幕上。