C语言中怎样使输出的三列数据上端对齐例如 1 2 ** 2 3 *** 3 4 ****

#include <stdio.h>
int main()
{
int i,j,n,p;
int a[40]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40},
b[40]={8,6,7,8,9,3,2,4,6,10,7,3,2,5,7,8,9,4,10,10,4,5,7,4,3,2,2,5,7,8,9,6,4,2,1,1,6,8,9,9};
printf("Grade\tCount\tHistogram\n");
for(i=0;i<40;i++)
printf("%d\n",a[i]);
for(j=0;j<40;j++)
{ printf("\t%d\n\t",b[j]);
printf("\t");
for(n=1;n<=b[j];n++)
{printf("*");}
printf("\n");}
return 0;
}
'1 2 ** 2 3 *** 3 4 ****'请忽略它,我的意思是让我的程序执行出的三列数据上端对齐,为一个矩阵

1自己用格式定义控制。
    例如:5位整数,左端对齐  用 %-5d 格式,右端对齐 用 %5d 格式。
    每3个数 换一行,用 '\n' 控制。
程序例子:

#include <stdio.h>
int main()
{
 int a[40];
 int i;
 for (i=0;i<40;i++) 
   a[i]=i+1;
 for (i=0;i<40;i++){
   printf("%-5d\t",a[i]);   //对齐控制
   if ((i+1)%3==0)
   printf("\n");     //换行控制
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
自己用格式定义控制。
例如:5位整数,左端对齐 用 %-5d 格式,右端对齐 用 %5d 格式。
每3个数 换一行,用 '\n' 控制。
程序例子:
#include <stdio.h>
main()
{
int a[40];
int i;
for (i=0;i<40;i++) a[i]=i+1;
for (i=0;i<40;i++){
printf("%-5d\t",a[i]); //对齐控制
if ((i+1)%3==0) printf("\n"); //换行控制
}本回答被提问者和网友采纳
相似回答