C语言,怎么样才能输出对齐了

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{int i,j,sum;
printf(" 九九加法\n-------------------------------------\n");
for(i=1;i<10;i++)
printf("%4d",i);
printf("\n------------------------------------------\n");
for(i=1;i<=9;i++)
for(j=1;j<=9;j++)

{
if(j==9)
printf("%4d+%d=%d\n",i,j,i+j);
else
printf("%4d+%d=%d",i,j,i+j);

}

}

后面就斜了,要怎么处理

有两种方法可以做到:
1 用制表符\t实现对齐。
制表符\t输出的时候,会移动输出光标,实现对齐效果。所以可以在输出的对应位置,增加\t来实现对齐。
要求每行相同列输出占用空间差别不可以太大。

2 在格式字符中加入占用宽度控制数字。
C语言使用printf输出时,每个控制字符均可以写成
%nC的形式,如%10d, %12f, %8c, %16s等等。
其效果就是输出对应变量时占用n个字符的宽度。不足部分左侧补空格。通过这种方式,可以实现右对齐效果。
如果要实现做对齐效果,只需要在宽度字符前加-符号即可,如%-8s,就是把字符串输出,占8位宽度,右侧补空格。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-30

#include "stdio.h"

void main()

{int i,j,sum;

printf("              九九加法\n-------------------------------------\n");

for(i=1;i<10;i++)

printf("%4d",i);

printf("\n------------------------------------------\n");

for(i=1;i<=9;i++)

for(j=1;j<=9;j++)


{

if(j==9)

printf("%-d+%-d=%-3d \n",i,j,i+j);//左对齐,  只要 最后一个长度大于结果的位数就可以对齐

else

printf("%-d+%-d=%-3d ",i,j,i+j);


}


}

本回答被提问者采纳
第2个回答  2014-08-30

因为两个加数都是一位数,所以,加数上不用调整了。
而和有一位数的有两位数的,为保证对齐,可以设定为最小输出宽度为2,这样就对齐了,如:

if(j==9)
printf("%4d+%d=%-2d\n",i,j,i+j);
else
printf("%4d+%d=%-2d",i,j,i+j);

%-2d 表示左对齐,右补空格,最少输出2位

第3个回答  2014-08-30
输出的时候加上\t吧

制表符

相当于键盘上的tab

满意还请采纳哟
第4个回答  2014-08-30
if(j==9)
printf("%4d+%d=%2d\n",i,j,i+j);
else
printf("%4d+%d=%2d",i,j,i+j);

相似回答