當前位置:編程學習大全網 - 編程語言 - 編寫程序,c語言。用壹維數組存儲二維數組的數據看,編寫函數完成矩陣的輸入,輸出,轉置,乘法運算。

編寫程序,c語言。用壹維數組存儲二維數組的數據看,編寫函數完成矩陣的輸入,輸出,轉置,乘法運算。

代碼壹:

#include<stdio.h>

int MAX,MIN;

int maxi,maxj,mini,minj;

void main()

{

void result(int x[][5],int m,int n);

int a[5][5],max,min,i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

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

MAX=MIN=a[0][0];

maxi=maxj=mini=minj=0;

result(a,5,5);

printf("MAX=%d,maxi=%d,maxj=%d\n",MAX,maxi,maxj);

printf("MIN=%d,mini=%d,minj=%d\n",MIN,mini,minj);

}

void result(int x[][5],int m,int n)

{

int i,j;

for(i=0;i<m;i++)

for(j=0;j<n;j++)

{

if(x[i][j]>MAX)

{

MAX=x[i][j];

maxi=i;

maxj=j;

}

if(x[i][j]<MIN)

{

MIN=x[i][j];

mini=i;

minj=j;

}

}

}

但代碼壹有個缺點,那就是如果有多個最值,只能輸出最後壹個。下面的代碼是經過改進的。

代碼二:

#include<stdio.h>

int MAX,MIN;

int maxi,maxj,mini,minj;

void main()

{

void result(int x[][5],int m,int n);

int a[5][5],max,min,i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

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

MAX=MIN=a[0][0];

maxi=maxj=mini=minj=0;

result(a,5,5);

}

void result(int x[][5],int m,int n)

{

int i,j;

for(i=0;i<m;i++)

for(j=0;j<n;j++)

{

if(x[i][j]>MAX)

MAX=x[i][j];

if(x[i][j]<MIN)

MIN=x[i][j];

}

for(i=0;i<m;i++)

for(j=0;j<n;j++)

{

if(x[i][j]==MAX)

{

MAX=x[i][j];

maxi=i;

maxj=j;

printf("MAX=%d,maxi=%d,maxj=%d\n",MAX,maxi,maxj);

}

if(x[i][j]==MIN)

{

MIN=x[i][j];

mini=i;

minj=j;

printf("MIN=%d,mini=%d,minj=%d\n",MIN,mini,minj);

}

}

}

  • 上一篇:電腦打開監視器(DVR)就要死機
  • 下一篇:sis系統是什麽意思啊?
  • copyright 2024編程學習大全網