69,373
社区成员
发帖
与我相关
我的任务
分享
//直接用函数模拟数组arr
int arr(int x,int y,int n) {//返回nxn倒三角数组arr[x][y]处的值,x=0..n-1,y=0..n-1
if (x+y>=n) return -1;//右下角无数据返回-1
return x+y;
}
/*
0 1 2 3 4
1 2 3 4
2 3 4
3 4
4
*/
int main(void)
{
int i, j;
int n[5] = {5, 4, 3, 2, 1};
int **pArray = (int**)malloc(sizeof(int*)*5);
//赋值
for(i = 0; i < 5; i++)
{
pArray[i] = (int*)malloc(sizeof(int)*n[i]);
for(j = 0; j < n[i]; j++)
pArray[i][j] = i + j;
}
//打印
for(i = 0; i < 5; i++)
{
for(j = 0; j < n[i]; j++)
printf("%d ", pArray[i][j]);
printf("\n");
}
//释放空间
for(i = 0; i < 5; i++)
free(pArray[i]);
free(pArray);
return 0;
}
#include <stdio.h>
int main(void)
{
int i, j;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
printf("%4d", arr(i, j));
printf("\n");
}
return 0;
}
int arr(int x, int y)
{
if(x + y >= 5)
return -1;
return x + y;
}
// 0 1 2 3 4
// 1 2 3 4 -1
// 2 3 4 -1 -1
// 3 4 -1 -1 -1
// 4 -1 -1 -1 -1