在C语言中怎么输出 数组 对齐

如题所述

%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。(长整型%mld,八进制%mo,十六进制%mx)

对于字符同理有%mc

对于float型,可用%m.nf,输出数据共占m列,n位小数,如果数据长度小于m那么左边补空格
        %-m.nf,为左靠齐,右补空格

对于字符串,%ms,输出的字符串占m列,字符串长度小于m,左边补空格,如果超出则全部输出.
      %-ms,右补空格
      %m.ns,输出占m列,但只取字符串左端n个字符。这n个字符输出在m列的右边,然后左边补空格.
      %-m.ns,右补空格
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-09-29
#include <stdio.h>
#include <string.h>
int main()
{
    int a,b;
    scanf("%d %d", &a,&b);
    printf("%s\n","Octal Decimal Hexadecimal");
    printf("%*o %*d %*x\n%*o %*d %*x",-strlen("Octal"),a,-strlen("Decimal"),a,-strlen("Hexadecimal"),a,-strlen("Octal"),b,-strlen("Decimal"),b,-strlen("Hexadecimal"),b);
    return 0;
}

第2个回答  2014-12-07
各种格式控制很多:
printf("%10d\n",...);
这样是设置输出域宽为10,内容右对齐。
printf("%-10d\n",...);
这样也是设置输出域宽为10,内容左对齐。
第3个回答  2011-05-08
在做一编程题目,结果一组数据最好是放在表格里,比如说是三行五列,这个怎么嘿嘿,用endl对齐不就行了嘛 这个你可以自己输出成表格形式 printf(
第4个回答  2011-05-08
printf有格式控制的功能
如你想输出a[5]中的值
for(int i=0;i<5;i++)
{
printf("%5d",a[i]);
}
具体看看这儿http://baike.baidu.com/view/410546.htm
相似回答