2401_83484026 2024-04-13 18:25 采纳率: 50%
浏览 4
已结题

九九乘法表输出想自己扩展一下到十乘十,应该怎么改正目前的代码

请教一下 需要这个输出时每个式子都上下左右对齐,然后输入n=10时也能保证式子对齐,这个代码应该怎么改正?


#include<stdio.h>

int main(){
    int n;
    scanf("%d",&n);
    int i,j;
    i=1;
    while (i<=n){
        j=1;
        while (j<=i){
            printf("%d*%d=%d",j,i,i*j);
            if (i*j<10){
                printf("   ");
                if(10<i*j<82){
                    printf("  ");
                }
            }
            j++;
        }
        printf("\n");
        i++;
    }
    return 0;
}
  • 写回答

6条回答 默认 最新

  • a5156520 2024-04-13 19:40
    关注

    可以在第12行使用printf()语句来进行格式化对齐,然后将后面打印空格去掉即可。

    修改如下:

    参考链接:

    #include<stdio.h>
    
    int main() {
        
        int n;
        scanf("%d",&n);
        
        int i,j;
        i=1;
        while (i<=n) {
            j=1;
            while (j<=i) {
                // https://blog.csdn.net/m0_49635911/article/details/135567934
                // 这里可以使用printf()函数的格式化打印来进行对齐
                // 第一个%3d宽度为3位,右对齐,第二个%-2d宽度为2位,左对齐,这两个保证乘数和被乘数连在一起,同时保持前后的空格
                // 第三个%3d宽度为3位,右对齐,这里三位宽度为1*110*10所有乘法结果,都保持3位宽度对齐
                printf("%3d*%-2d=%3d",j,i,i*j);   
    //            if (i*j<10) {
    //                printf("");
    //                if(10<i*j&&i*j<82) {
    //                    printf("  ");
    //                }
    //            }
                j++;
            }
            printf("\n");
            i++;
        }
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 自制电路图为何无法驱动ESP01S?
  • ¥15 前端加access数据库
  • ¥15 ARCGIS 多值提取到点 ERROR 999999
  • ¥15 mysql异常断电, [MY-011971] [InnoDB]
  • ¥15 uni.onBluetoothDeviceFound熄屏不运行
  • ¥35 关于shodan搜索网络摄像头的各种方法详解
  • ¥15 求PHDA糖尿病并发症数据集,有偿
  • ¥15 为什么AVL fire DVI 界面里面的response Editor project 中的Summary result 点不了
  • ¥20 中标麒麟系统V4.0,linux3.10.0的内核,3A4000处理器,如何安装英伟达或AMD的显卡驱动,
  • ¥20 求文心中文心理分析系统(TextMind)