设计程序打印下列图形15286310974这种规律设计一个算法实现

(分钟前 更新) 165 6123

最新回答

代码如下。你自己把它改为通用的子函数吧!
算法很简单:先搞定第一列,然后再搞定每一行的剩余元素。

include <stdio.h>
include <alloc.h>

int main(void)
{
int i, j;
int k; //存储修正值,即偏移量
int n 20; //需要打印的行数,你可以修改测试本程序
int **a; //存储动态数组

a (int **)malloc(n * sizeof(int *)); //分配动态数组
for(i 0; i < n; i++)
{
a[i] (int *)malloc(n * sizeof(int));
}

a[0][0] 0;
for(i 1, k n; i < n; i++)
{
a[i][0] a[i - 1][0] + (k--); //填充二维数组的第一列
}
for(i 1; i < n; i++)
{
for(j 1, k 0; j < i; j++)
{
a[i][j] a[i][j - 1] - (n - i) - (k++); //填充二维数组的每一行的(斜三角部分的)剩余位置
}
}

for(i 0; i < n; i++)
{
for(j 0; j < i; j++)
{
printf("%-4d", a[i][j] + 1); //注意:数组的初始化是以0开始的,这里以1开始输出
}
printf("&92;n");
}

for(i 0; i < n; i++)
{
free(a[i]);
}
free(a);

return 0;
}
记住我88 2024-05-16

扩展回答

热门问答

装修专题

首页 >  设计程序打印下列图形15286310974这种规律设计一个算法实现

其他人还看了

页面运行时间: 0.025427103042603 秒