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日