c语言:九九口诀表对齐问题

img


如何对齐


#include<stdio.h>
int main(){
    int n;
    int cnt = 1;
    for ( n = 1; n < 10; n++)
    {   cnt = 1;
        int i = 1;
        printf("%d*%d=%d ",i,n,i*n);
        //printf("\n");
        if (n > 1)
        {
            while (cnt < n)
            {
                i++;
                printf("%d*%d=%d",i,n,i*n);
                cnt++;
                printf(" ");
            }
             
        }
        printf("\n");
    }
    
    return 0;
}

这是给你改进的代码:主要是输出时控制它的间距
%2d:表示输出整数,占据两个字符宽度,右对齐。
%d:表示输出整数,宽度取决于具体的数值,右对齐。
%-2d:表示输出整数,占据两个字符宽度,左对齐。
代码:修改的地方写了注释

 
#include<stdio.h>
int main(){
    int n;
    int cnt = 1;
    for ( n = 1; n < 10; n++)
    {   cnt = 1;
        int i = 1;
        printf("%d*%d=%d ",i,n,i*n);
        //printf("\n");
        if (n > 1)
        {
            while (cnt < n)
            {
                i++;
                printf("%2d*%d=%-2d",i,n,i*n); //修改的地方 
                cnt++;
                printf(" ");
            }
             
        }
        printf("\n");
    }
    
    return 0;
}

如果有帮助请给我个采纳谢谢你

printf(" ");
->
printf("\t");

img

两句输出语句改为:printf("%d*%d=%-2d ", i, n, i * n); 即可。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7510585
  • 这篇博客你也可以参考下:C语言编程练习:打印九九口诀表
  • 同时,你还可以查看手册:c语言-字符串字面量 中的内容
  • 除此之外, 这篇博客: c语言做游戏,告别黑窗口中的 在这输出文字 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • settextcolor(BLUE);
    	settextstyle(100, 0, L"隶书");
    	outtextxy(100, 100,L"帅");

    ps:如果Unicode一定记得L

    settextstyle,顾名思义,创建字体类型,100规定高度,0是宽度(这里0不是宽度为0,而是自适应)“隶书”的字体

    outtextxy(),xy坐标,要输出的内容

  • 您还可以看一下 胡智元老师的C语言程序设计之指针讲解课程中的 指针常见操作 小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题解答:

    要实现九九口诀表的对齐,可以利用C语言中的格式化输出来实现。具体步骤如下:

    1. 使用双重循环嵌套,外层循环控制九九口诀表的行数,内层循环控制每行的列数。
    2. 在内层循环中,使用格式化输出函数printf来输出每个乘法表达式,并通过使用格式化占位符控制对齐。可以使用"%-3d"来控制每个数字的输出宽度为3个字符,并向左对齐。
    3. 在内层循环中,每输出完一个乘法表达式后,使用空格进行分隔,以实现对齐。
    4. 内层循环中,每输出完一行乘法表达式后,可以通过使用转义字符"\n"和"\t"来进行换行和缩进,使九九口诀表更加美观。

    下面是一个示例的C代码实现:

    #include <stdio.h>
    
    int main() {
        int i, j;
    
        // 双重循环嵌套,外层循环控制行数,内层循环控制列数
        for(i=1; i<=9; i++) {
            for(j=1; j<=i; j++) {
                // 使用格式化输出控制对齐,并使用空格进行分隔
                printf("%-3d*%-3d=%-4d", j, i, i*j);
            }
            // 换行并缩进,使九九口诀表更加美观
            printf("\n\t");
        }
    
        return 0;
    }
    

    这段代码会输出一个九九口诀表,并实现对齐。每个乘法表达式的数字宽度为3个字符,向左对齐。并且每行之间通过空格进行分隔,使九九口诀表更加整齐。

    希望能够帮助到您!如果还有其他问题,请随时向我提问。

可以多输出空格