定义类型为int的MxN的矩阵,用二维数组array表述,通过rand()进行赋值, seed是123。
为了满足题目的要求,我们需要以下步骤来完成:
定义一个MxN的二维数组,类型为int。
使用rand()函数进行赋值,并设置seed为123。
遍历数组的每一个元素,使用%p进行打印,并输出其内存地址。
输出数组在内存中占用的字节数。
对该矩阵进行转置,并输出。
保留该矩阵的右上三角进行输出。
保留该矩阵的左下三角进行输出。
代码如下:
#include <stdio.h>
#include <stdlib.h>
#define M 4
#define N 5
int main()
{
int array[M][N];
int i, j;
// 使用rand()函数进行赋值,并设置seed为123
srand(123);
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
array[i][j] = rand();
}
}
// 遍历数组的每一个元素,使用%p进行打印,并输出其内存地址
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
printf("array[%d][%d] address: %p\n", i, j, &array[i][j]);
}
}
// 输出数组在内存中占用的字节数
printf("array size: %ld bytes\n", sizeof(array));
// 对该矩阵进行转置,并输出
printf("Transpose:\n");
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
printf("%d ", array[j][i]);
}
printf("\n");
}
// 保留该矩阵的右上三角进行输出
printf("Right upper triangle:\n");
for (i = 0; i < M; i++) {
for (j = i; j < N; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
// 保留该矩阵的左下三角进行输出
printf("Left lower triangle:\n");
for (i = 0; i < M; i++) {
for (j = 0; j <= i; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
这段代码将初始化一个4x5的int型二维数组,使用rand()函数进行赋值,并设置seed为123。接着,遍历数组的每一个元素,使用%p进行打印,并输出其内存地址。然后,输出数组在内存中占用的字节数。接下来,对该矩阵进行转置,并输出。最后,保留该矩阵的右上三角和左下三角,分别进行输出。
仅供参考