鱼C论坛

 找回密码
 立即注册
查看: 1060|回复: 1

为什么显示不出数字

[复制链接]
发表于 2023-11-6 19:58:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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("%d\n%d%d%d\n%d%d%d\n",b*1+c*9+d*9*9,b,c,d,d,c,b);
    break;
        }
                }
        }       
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}

现在,代码应该能够正确地显示数字了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 13:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表