C 数组 层叠矩阵

通过数组来打印一系列矩阵是C 中很常见的题目。今天就使用数组来打印一个层叠矩阵,输入行数与起始数字,实现以下类似的输出:1   4    9   16

2   3    8   15

5   6    7   14

      10  11  12  13

起始数放在左上角,然后从起始数开始在现在同列然后在同行递增,层层叠叠的形成一个层叠矩阵。

程序如下:

#include <stdio.h>
int main()
{
int start,row;
int i, j, k,n;
int arr[10][10];
printf("please enter start and row:");
scanf("%d%d", &start,&row);
arr[0][0] = start;
n = start + 1;
for (i = 0; i < row; i++)
{
for (j = 0; j < i + 2; j++, n++)
arr[i + 1][j] = n;
for (k = i; k >=0; k--,n++)
arr[k][j-1] = n;
}
for (i = 0; i < row; i++)
{
for (j = 0; j < row; j++)
printf("%2d ", arr[i][j]);
printf("\n");
}

return 0;
}

该程序通过建立一个10 10 的数组,输入行数和起始数。通过3个for循环,2个嵌套for循环,先在一行递增打印,再在一列上递减打印,最后利用for循环输出层叠矩阵。该程序注意点是for循环的灵活运用以及变量的恰当使用。

输出结果:

please enter start and row:1 5
 1  4  9 16 25
 2  3  8 15 24
 5  6  7 14 23
10 11 12 13 22
17 18 19 20 21
请按任意键继续. . .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值