网站建设好处zu97,移动互联网 传统网站,wordpress获取自定义分类名,互动网门户网站建设回原点(......?)当我没讲#xff0c;好难
1. 编写函数,要求用指针做形参#xff0c;实现将二维数组(行列相同)的进行转置#xff08;行列数据互换#xff09;#xff1a;
...不会写
/*1. 编写函数,要求用指针做形参#xff0c;实现将二维数组(行列相同)的进行转置好难
1. 编写函数,要求用指针做形参实现将二维数组(行列相同)的进行转置行列数据互换
...不会写
/*1. 编写函数,要求用指针做形参实现将二维数组(行列相同)的进行转置行列数据互换*/
#include stdio.h
#include stdlib.h
#include time.h// 函数声明
void transpose(int *matrix, int n);int main()
{int n 3; // 假设是3x3的数组int matrix[3][3];// 初始化随机数种子srand((unsigned int)time(NULL));// 随机生成数组for (int i 0; i n; i) {for (int j 0; j n; j) {matrix[i][j] rand() % 100; // 生成0到99之间的随机数}}printf(原始数组\n);for (int i 0; i n; i) {for (int j 0; j n; j) {printf(%d , matrix[i][j]);}printf(\n);}transpose((int *)matrix, n); // 调用函数进行转置printf(转置后的数组\n);for (int i 0; i n; i) {for (int j 0; j n; j) {printf(%d , matrix[i][j]);}printf(\n);}return 0;
}// 函数定义实现转置
void transpose(int *matrix, int n)
{int i, j;for (i 0; i n; i) {for (j i 1; j n; j) {int temp *(matrix i * n j);*(matrix i * n j) *(matrix j * n i);*(matrix j * n i) temp;}}
}
虽然代码有了但是我暂时还不是很会留着后面补嘿嘿先发布啦,嘿嘿嘿嘿
2 编写函数,要求用指针做形参实现统计二维数组上三角中的0 的数量3*3好看0的数量 注意上三角包括主对角线以上的元素不包括对角线本身。
/*2 编写函数,要求用指针做形参实现统计二维数组上三角中的0 的数量*/
#include stdio.h
#include stdlib.h
#include time.h#define R 3
#define C 3//函数声明
void arr(int (*a)[C]); //用于初始化数组
int countZeros(int (*a)[C]); //统计上三角的0的个数int main()
{int a[R][C];srand((unsigned int)time(NULL));arr(a);printf(初始化后的数组:\n);int i 0,j 0;for(i 0;i R;i){for(j 0;j C;j){printf(%d,a[i][j]);}printf(\n);}int zeroCount countZeros(a); // 调用函数统计上三角中的0的数量printf(上三角中的0的数量: %d\n,zeroCount);return 0;}//函数定义 初始化数组
void arr(int (*a)[C])
{for(int i 0;i R;i){for(int j 0;j C;j){a[i][j] rand() % 2; //生成0或1的随机数}}}//函数定义 统计上三角的0的数量
int countZeros(int (*a)[C])
{int zeroCount 0;for(int i 0;i R;i) //循环遍历数组找出上三角的数值看是否为0,为0,进入循环,zeroCount加1{for(int j i 1;j C;j){if(a[i][j] 0){zeroCount;}}}return zeroCount;
}
3. 编写一个指针函数返回二维数组中最大元素的地址。 /*3. 编写一个指针函数返回二维数组中最大元素的地址。*/
#include stdio.h
#include stdlib.h
#include time.h#define R 3
#define C 3// 函数声明
int *findMaxElementAddress(int (*array)[C]);int main() {int array[R][C] {0};// 初始化随机数发生器srand((unsigned int)time(NULL));// 随机初始化数组for (int i 0; i R; i) {for (int j 0; j C; j) {array[i][j] rand() % 100; // 生成0到99之间的随机数}}// 打印随机初始化的数组for (int i 0; i R; i) {for (int j 0; j C; j) {printf(%d , array[i][j]);}printf(\n);}// 调用函数找到并打印最大元素的地址和值int *maxAddress findMaxElementAddress(array);if (maxAddress ! NULL) {printf(最大元素的地址是: %p\n, maxAddress);printf(最大元素的值是: %d\n, *maxAddress);} else {printf(没有元素\n);}return 0;
}// 函数定义返回二维数组中最大元素的地址
int *findMaxElementAddress(int (*array)[C])
{int INT_MIN 0;int maxElement INT_MIN; // 初始化为最小整数值int *maxAddress NULL; // 初始化地址为NULLfor (int i 0; i R; i) {for (int j 0; j C; j) {if (array[i][j] maxElement) {maxElement array[i][j];maxAddress array[i][j]; // 更新最大元素的地址}}}return maxAddress; // 返回最大元素的地址
}