题目:
输出以下4*5的矩阵
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
要求使用循环实现,注意每行输出5个数字,每个数字占3个字符的宽度,右对齐。
思路:
利用两个循环来实现,外层循环用来输出行,内层循环用来输出列,关键在于如何找出每行数字的规律,以及要注意题目的要求(每个数字占3个字符的宽度)
提供两种解题方法:
方法1:
for(int i = 1; i < 6;i++)
{
for(int j = 1; j < 6;j++)
{
printf("%3d",i * j);//此时的i*j刚好满足题目的要求
}
cout << endl;
}
方法2:
int k = 0;
for(int i = 1; i < 6;i++)
{
k = i;
for(int j = 1; j < 6;j++)
{
printf("%3d",k);
k+=i;
}
}
补充知识:
%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,右补空格