网站建设资讯

NEWS

网站建设资讯

c语言传入矩阵做函数参数 c语言通用矩阵乘法函数

c语言 新人提问 实现一个函数, 传入一个矩阵, 输出该矩阵乘以该矩阵转置的结果;

jz(a[4][4])改成jz(a);

成都创新互联公司专注于泗阳网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供泗阳营销型网站建设,泗阳网站制作、泗阳网页设计、泗阳网站官网定制、重庆小程序开发公司服务,打造泗阳网络公司原创品牌,更为您提供泗阳网站排名全网营销落地服务。

scanf("%d",a[i][j])改成scanf("%d",a[i][j]);

还有就是数组最好初始化,如果不初始化,容易出现乱码,我给你改了下,运行没问题了

#define _CRT_SECURE_NO_WARNINGS

#includestdio.h

#includestdlib.h

void jz(int a[4][4])

{

int i, j, k, b[4][4] = {0};

for (i = 0; i  4; i++) //转置部分

{

for (j = 0; j  4; j++)

{

b[i][j] = a[j][i];

}

}

int c[4][4] = {0}; //乘法部分

for (i = 0; i4; i++)

{

for (j = 0; j4; j++)

{

for (k = 0; k4; k++)

c[i][j] += a[i][k] * b[k][j];

}

}

for (i = 0; i4; i++) //输出部分

{

for (j = 0; j4; j++)

{

printf("%-4d", c[i][j]);

}

printf("\n");

}

}

int main()

{

int a[4][4] = {0};

int i, j;

for (i = 0; i4; i++)

{

for (j = 0; j4; j++)

{

scanf("%d", a[i][j]);

}

}

jz(a);

system("pause");

return 0;

}

C语言中矩阵怎么传参?

传递数组的指针和数组长度

int

matrix_cmp(matrixA指针,

matrix

A长度,matrixB指针

matrix

B长度)

C语言怎么把矩阵传到函数中?希望有具体的例子;

float matrix(float *a[3]){

return(a[0][0]+a[0][2]+a[1][1]+a[2][0]+a[2][2]);

}

int i,j;

float a[3][3],*p[3];

for(i = 0; i 3; i++)for(j = 0; j 3; j++){

scanf("%f",a[i][j]); // float 格式 %f

}

p[0]=a[0][0];p[1]=a[1][0];p[2]=a[2][0]; // 3个指针

printf("sum=%0.2f\n", matrix(p)); // 调用。

============

一般例子(已知数组 行列,动态分配的数组)如何传递数值:

#include stdio.h

void fun1(int *mat, int N_row, int N_col){

int i,j;

for (j=0;jN_row;j++){

for (i=0;iN_col;i++) printf("%d ",mat[j*N_col+i]);

printf("\n");

}

}

void fun2(int **mat, int N_row, int N_col){

int i,j;

for (j=0;jN_row;j++){

for (i=0;iN_col;i++) printf("%d ",mat[j][i]);

printf("\n");

}

}

int main()

{

int arr[3][4]={{11,12,13,14},{21,22,23,24},{31,32,33,34}};

int **a;

int NR,NC,j,i;

fun1( arr[0][0],3,4);

printf("input nrow ncol\n");

scanf("%d %d",NR,NC);

a = (int **) malloc(sizeof(int *) * NR);

for (j=0;jNR;j++){

a[j] = (int *) malloc(sizeof(int) * NC);

}

printf("input matrix data \n");

for (j=0;jNR;j++) for (i=0;iNC;i++) scanf("%d",a[j][i]);

fun2( a,NR,NC);

return 0;

}

c语言编写一个函数,由实参传来一个矩阵 A[M][N],按列输出它每一列上最大值和最小值 的差?

个人建议最好将矩阵的指针作为参数传入。因为过大的二维数组会引发栈溢出,编译器不会报错,运行时也不会中断,但是二维数组最后一部分数据会被截断并丢失。

void func(int (*A)[M][N]) {

int i, j, maxValue, minValue;

for (i = 0; i N; i++) {

maxValue = (*A)[0][i];

minValue = (*A)[0][i];

for (j = 0; j M; j++) {

if (maxValue (*A)[j][i])

maxValue = (*A)[j][i];

if (minValue (*A)[j][i])

minValue = (*A)[j][i];

}

printf("第%d列上最大值和最小值的差是:%d\n", i, maxValue - minValue);

}

}


本文题目:c语言传入矩阵做函数参数 c语言通用矩阵乘法函数
文章URL:http://njwzjz.com/article/ddijpeg.html