第1个回答 2008-12-24
#include "stdio.h"
#include <malloc.h>
#define N 3
main()
{
int num[N][N] = {{1,2,3},{0,4,5},{0,0,6}};
int i;
int j;
int sum = 0;
int k = 0;
int *result;
for (i = 1; i < N; ++i)
{
sum += i;
}
result = (int *)malloc(sizeof(int)*(N*N - sum));//一个N*N的数组,有0的个数为1+2+...+N-1,所以剩下元素个数为N*N-sum;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (i <= j)//上三角矩阵,行下标小于等于列下标
{
result[k] = num[i][j];
k++;
}
}
}
for (i = 0; i < N*N - sum; i++)
{
printf("%d ",result[i]);
}
printf("\n");
free(result);
}