// 1 2 3 4 5
// 6 7 8 9 10
// 11 12 13 14 15
// 16 17 18 19 20
// 21 22 23 24 25
// 5*5即25个整数malloc(sizeof(int)*25)
// 因为题目矩阵固定,上三角是2 3 4 5 8 9 10 14 15 20元素.所以直接取出相乘就行了
void main(){
int postable[10] = {2,3,4,5,8,9,10,14,15,20};
int *m = (int*)malloc(sizeof(int)*25);
int i = 0, d = 1;
while(i<25)
scanf("%d",m + i++);
for(i=0;i<10;i++)
d *= *(m + postable[i] - 1);
printf("%d",d);
free(m);
}
// 如果不想用表来取上三角,则:
#define x 5
void main()
{
int *m = (int *)malloc(sizeof(int) * x * x);
int i = 0, j = 0, d = 1;
while(i < x * x)
scanf("%d", m + i++);
for(i = 0; i < x; i++)
for(j = i + 1; j < x; j++)
d *= *(m + i * x + j);
printf("%d", d);
free(m);
}
本回答被网友采纳