c語(yǔ)言傳入矩陣做函數(shù)參數(shù) c語(yǔ)言通用矩陣乘法函數(shù)

c語(yǔ)言 新人提問 實(shí)現(xiàn)一個(gè)函數(shù), 傳入一個(gè)矩陣, 輸出該矩陣乘以該矩陣轉(zhuǎn)置的結(jié)果;

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

成都創(chuàng)新互聯(lián)公司專注于泗陽(yáng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供泗陽(yáng)營(yíng)銷型網(wǎng)站建設(shè),泗陽(yáng)網(wǎng)站制作、泗陽(yáng)網(wǎng)頁(yè)設(shè)計(jì)、泗陽(yáng)網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造泗陽(yáng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供泗陽(yáng)網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

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

還有就是數(shù)組最好初始化,如果不初始化,容易出現(xiàn)亂碼,我給你改了下,運(yùn)行沒問題了

#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++)?//轉(zhuǎn)置部分

{

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語(yǔ)言中矩陣怎么傳參?

傳遞數(shù)組的指針和數(shù)組長(zhǎng)度

int

matrix_cmp(matrixA指針,

matrix

A長(zhǎng)度,matrixB指針

,

matrix

B長(zhǎng)度)

C語(yǔ)言怎么把矩陣傳到函數(shù)中?希望有具體的例子;

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個(gè)指針

printf("sum=%0.2f\n", matrix(p)); // 調(diào)用。

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

一般例子(已知數(shù)組 行列,動(dòng)態(tài)分配的數(shù)組)如何傳遞數(shù)值:

#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語(yǔ)言編寫一個(gè)函數(shù),由實(shí)參傳來一個(gè)矩陣 A[M][N],按列輸出它每一列上最大值和最小值 的差?

個(gè)人建議最好將矩陣的指針作為參數(shù)傳入。因?yàn)檫^大的二維數(shù)組會(huì)引發(fā)棧溢出,編譯器不會(huì)報(bào)錯(cuò),運(yùn)行時(shí)也不會(huì)中斷,但是二維數(shù)組最后一部分?jǐn)?shù)據(jù)會(huì)被截?cái)嗖G失。

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);

}

}

當(dāng)前文章:c語(yǔ)言傳入矩陣做函數(shù)參數(shù) c語(yǔ)言通用矩陣乘法函數(shù)
網(wǎng)站鏈接:http://www.muchs.cn/article46/ddijpeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)Google、移動(dòng)網(wǎng)站建設(shè)、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站