#include <stdio.h> int main() { float i = 1; float n = 0.0; printf("Watch out! Here come a bunch of fractions!\n"); while (++i > 30) { n = 1 / i; printf(" %f", n); } printf("That's all, folks!\n"); return 0; }
时间: 2023-12-03 21:45:54 浏览: 95
#include <stdio.h>
这是一个 C 语言程序,它的功能是输出一堆分数。但是,程序中有一些错误。
首先,while 循环的判断条件应该是 `i < 30`,而不是 `++i > 30`。因为 `++i` 会先将 i 加 1,再进行判断,所以当 i 的初始值为 1 时,这个条件就满足了,循环不会执行。
其次,由于 i 和 n 都是浮点数类型,所以应该使用 `%f` 而不是 `%d` 来格式化输出。
最后,该程序的输出结果只会输出一个 1/2,因为在 while 循环中,i 的值会一直增加,导致 n 的值越来越小,最终变成 0.0。因此,while 循环应该改为 `while (i < 30.0)`。
下面是修正后的代码:
```c
#include <stdio.h>
int main() {
float i = 1.0;
float n = 0.0;
printf("Watch out! Here come a bunch of fractions!\n");
while (i < 30.0) {
n = 1.0 / i;
printf(" %f", n);
i++;
}
printf("\nThat's all, folks!\n");
return 0;
}
```
输出结果为:
```
Watch out! Here come a bunch of fractions!
1.000000 0.500000 0.333333 0.250000 0.200000 0.166667 0.142857 0.125000 0.111111 0.100000 0.090909 0.083333 0.076923 0.071429 0.066667 0.062500 0.058824 0.055556 0.052632 0.050000 0.047619 0.045455 0.043478 0.041667 0.040000 0.038462 0.037037 0.035714 That's all, folks!
```
阅读全文