|
发表于 2023-11-6 19:58:27
|
显示全部楼层
这段代码的目的是找到满足条件 a = e 的数字。但是在输出结果时,可能会出现无法显示数字的情况。
造成这个问题的原因是,输出语句中的格式字符串使用了 %d ,这意味着要打印整数。然而,由于 b 、 c 和 d 是 for 循环的控制变量,它们的值可能会超过一位数,导致无法正确显示。
为了解决这个问题,我们可以将输出语句中的格式字符串改为 %2d ,这样就可以确保输出的数字始终占据两位数的位置。修改后的代码如下:
- #include <stdio.h>
- #include <math.h>
- int main() {
- int a, b, c, d, e;
- for (b = 1; b < 10; b++) {
- for (c = 1; c <= 7; c++) {
- for (d = 1; d < 9; d++) {
- a = b * 1 + c * 9 + d * 9 * 9;
- e = d * 1 + c * 7 + b * 7 * 7;
- if (a == e) {
- printf("%2d\n%2d%2d%2d\n%2d%2d%2d\n", b * 1 + c * 9 + d * 9 * 9, b, c, d, d, c, b);
- break;
- }
- }
- }
- }
- return 0;
- }
复制代码
现在,代码应该能够正确地显示数字了。 |
|