题目:
编写一个算法,其功能是给一维数组a输入任意6个整数,假设为1,2,3,4,5,6,
然后建立一个具有如下所示的方阵,并打印出来:
1 2 3 4 5 6
2 3 4 5 6 1
3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
6 1 2 3 4 5
分析:
这个方阵的规律就是每一列都是前一行右移1得到的。
代码实现:
#include<stdio.h>
int main() {
int a[6], b[6][6];
for (int i = 0; i < 6; i++) {
scanf("%d", &a[i]);
}
//第一行
for (int i = 0; i < 6; i++) {
b[0][i] = a[i];
}
//第一列
for (int i = 0; i < 6; i++) {
b[i][0] = a[i];
}
//第二行以后以及第二列以后的值
for (int i = 1; i < 6; i++) {
for (int j = 1; j < 6; j++) {
b[i][j] = b[i-1][j-1];
}
}
//打印方阵
for (int i = 0; i < 6; i++) {
for(int j = 0; j < 6; j++) {
printf("%d\t", b[i][j]);
}
printf("\n");
}
}