當前位置:首頁 » 編程語言 » c語言求矩陣中最大最小
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求矩陣中最大最小

發布時間: 2022-06-01 08:22:02

A. c語言編程求矩陣的最大值,最小值及所在的位置

#include<stdio.h>
int a[9][9]={{5,15,9,16,7,10,2,6,3,20}};

//最大值函數聲明
int getmax(int *,int *);

//最小值函數聲明
int getmin(int *,int *)

//主函數
void main(void)
{
int imax,jmax,imin,jmin;

printf("矩陣最大值為%d,位置為%d行,%d列;",getmax(&imax,&jmax),imax,jmax);

printf("最小值為%d,位置為%d行,%d列;",getmin(&imin,&jmin),imin,jmin);

printf("正對角線和為%d!",getlsum());

printf("反對角線和為%d!",getrsum());
}

//求最大值函數
int getmax(int * imax,int * jmax)
{
int max=0;
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
{
if(a[i][j]>max)
{
*imax=i;
*jmax=j;
max=a[i][j];
}
}
return max;
}

//求最小值函數
int getmin(int * imin,int * jmin)
{
int min=65535;
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
{
if(a[i][j]<min)
{
*imin=i;
*jmin=j;
min=a[i][j];
}
}
return min;
}

//求正對角線和函數
int getlsum()
{
int sum=0;
for(int i=0;i<9;i++)
sum+=a[i][i];
return sum
}

//求反對角線和函數
int getrsum()
{
int sum=0;
for(int i=0;i<9;i++)
sum+=a[i][9-i];
return sum;
}
程序寫好了,放在一起的,公用一個主函數,如果不要顯示哪個功能就把哪塊幹掉,如果這你都不會我就沒辦法了!!!

B. 請大家幫忙用C語言編個程序,「有一個三乘四的矩陣,求編程求出其中值最大和最小的元素,輸出其值及其所在

# include <stdio.h>
main()
{ int max,maxi,maxj,min,mini,minj,a[3][4],i,j;
printf("input numbers:\n');
for(i=0,i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=min=a[0][0];
for(i=0,i<3;i++)
for(j=0;j<4;j++)
{ if(a[i][j]>max)
{ max=a[i][j];
maxi=i+1;
maxj=j+1;
}
if(a[i][j]<min)
{ min=a[i][j];
mini=i+1;
minj=j+1;
}
}
printf("最大值為%d,在第%d行,第%d列;\n最小值為%d,在第%d行,第%d列。\n",max,maxi,maxj,min,mini,minj);
}
滿意請採納!

C. C語言,輸入一個矩陣,找出所在行上最大,列上最小的數。(可能沒有) 可能定義出錯,求大蝦指教!!!!

以下是求每一行上最大、每一列上最小的程序:
#include<stdio.h>
main()
{
inti,j,k,l,min,max;
printf("請輸入矩陣的規格: ");
scanf("%d,%d",&i,&j);
printf("這是一個%d乘%d的矩陣 ",i,j);
inta[i][j];
printf("請輸入該矩陣: ");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0];
for(l=0;l<j;l++)
{
if(a[k][l]>max)
max=a[k][l];
}
printf("第%d行的最大值%d ",k+1,max);
}
for(l=0;l<j;l++)
{
min=a[0][l];
for(k=0;k<i;k++)
{
if(a[k][l]<min)
min=a[k][l];
}
printf("第%d列的最小值%d ",l+1,min);
}

}

不過題目的意思應該不是這樣的。應該是「找出所在行上最大,同時又是列上最小的數」。
#include<stdio.h>
main()
{
inti,j,k,l,min,max,t1,t;
printf("請輸入矩陣的規格: ");
scanf("%d,%d",&i,&j);
printf("這是一個%d乘%d的矩陣 ",i,j);
inta[i][j];
printf("請輸入該矩陣: ");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0];
for(l=0;l<j;l++)
{
if(a[k][l]>max)
{
max=a[k][l];
t1=l;
}
}
t=1;
for(l=0;l<i;l++)
{
if(a[l][t1]<max)
{
t=0;
}
}
if(t)
printf("第%d行%d列的值%d為行上最大、列上最小 ",k+1,t1+1,max);
}
}

D. c語言編程:一個2*3矩陣,求最大值,最小值

思路:先把矩陣的第一個數賦值給最大值和最小值,接著遍歷整個矩陣依次和最大值和最小值比較,更新最大值和最小值,最後輸出最大值和最小值。

參考代碼:

#include"stdio.h"
intmain()
{
inta[2][3]={{5,1,2},{6,9,4}},max,min,i,j;
max=min=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++){
if(a[i][j]>max)max=a[i][j];
if(a[i][j]<min)min=a[i][j];
}
printf("最大值為:%d,最小值為:%d ",max,min);
}
/*
運行結果:
最大值為:9,最小值為:1
*/

E. 用C語言編程解決:在 n 行 n 列的矩陣中,每行都有最大的數,求這 n 個最大數中的最小一個

#include "stdio.h"
int main()
{
int d[100][100],n,max[100],min;
int i,j;
printf("輸入矩陣階數:");
scanf("%d",&n);
printf("輸入%d*%d階矩陣:\n",n,n);
for(i=0;i<n;i++)
{
scanf("%d",&d[i][0]);
max[i]=d[i][0];
if(i==0) min=d[i][j];
for(j=1;j<n;j++)
{
scanf("%d",&d[i][j]);
if(max[i]<d[i][j])
max[i]=d[i][j];
}
if(min>max[i]) min=max[i];
}
printf("\n各行數中最大者中最小的數是%d",min);
}

F. C語言編程求出3×4矩陣中的最大值與最小值及其所在行和列。

摘要 #include

G. 怎麼用C語言同時求出矩陣中每行的最大值與最小值

將每行看著一個一維數組,然後問題轉換為求一維數組的最大最小值

int find_max_min(int *array,int len,int *min, int *max)
{
int i=0;
min=max=array[i];
while(i<len)
{
if(array[i]>max)
{
max=array[i];
}
if(array[i]<min)
{
min=array[i];
}
i++
}
return 0;
}

H. 有一個M×N階矩陣,求其中最大值和最小值,以及它們的行號和列號。用C語言編寫程序

#include<stdio.h>
intmain()
{intm,n,i,j,maxi,maxj,mini,minj;
scanf("%d%d",&m,&n);
inta[m][n];
maxi=maxj=mini=minj=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{scanf("%d",&a[i][j]);
if(a[i][j]>a[maxi][maxj]){maxi=i;maxj=j;}
if(a[i][j]<a[mini][minj]){mini=i;minj=j;}
}
printf("Max=a[%d][%d]=%d ",maxi,maxj,a[maxi][maxj]);
printf("Min=a[%d][%d]=%d ",mini,minj,a[mini][minj]);
return0;
}

I. 【c語言編程】矩陣求最大值或最小值並返回它所在的行號與列號

#include<stdio.h>
voidmain()
{
inti,j,minv,mini,minj,sum=0;
inta[4][4];
printf("請輸入矩陣中的16個數: ");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
minv=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(a[i][j]<minv)
{
minv=a[i][j];
mini=i+1;
minj=j+1;
}
if(i==j)
sum+=a[i][j];
}
printf("矩陣中最小值為%d,它在第%d行,%d列! ",minv,mini,minj);
printf("矩陣中對角線元素之和為%d",sum);
}

你需要動態的可以這樣寫:

#include<stdio.h>
#include<stdlib.h>
voidmain()
{
inti,j,minv,mini=1,minj=1,sum=0,h,l;
printf("請輸入矩陣的大小:");
scanf("%d%d",&h,&l);
int**a=(int**)malloc(sizeof(int*)*h);
for(i=0;i<l;i++)
a[i]=(int*)malloc(sizeof(int)*l);
printf("請輸入矩陣中的%d個數: ",h*l);
for(i=0;i<h;i++)
for(j=0;j<l;j++)
scanf("%d",&a[i][j]);
minv=a[0][0];
for(i=0;i<h;i++)
for(j=0;j<l;j++)
{
if(a[i][j]<minv)
{
minv=a[i][j];
mini=i+1;
minj=j+1;
}
}
printf("矩陣中最小值為%d,它在第%d行,%d列! ",minv,mini,minj);
minv=a[0][0];
for(i=0;i<h;i++)
for(j=0;j<l;j++)
{
if(a[i][j]>minv)
{
minv=a[i][j];
mini=i+1;
minj=j+1;
}
}
printf("矩陣中最大值為%d,它在第%d行,%d列! ",minv,mini,minj);
}

J. c語言 寫一個4×4矩陣,找出其中最大值最小值 和最大最小值的位標。

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
typedefstructLocation
{
intx;
inty;
}LOC;
intmain(void)
{
LOCmin,max;
intnMax,nMin;
inta[4][4]={1,2,3,4,
5,6,7,8,
9,10,11,12,
13,14,15,16};
nMax=nMin=a[0][0];
for(inti=0;i<4;i++)
for(intj=0;j<4;j++)
{
if(nMax<=a[i][j])
{
nMax=a[i][j];
max.x=i;
max.y=j;
}
if(nMin>=a[i][j])
{
nMin=a[i][j];
min.x=i;
min.y=j;
}
}
printf("最小值為:%d,最小值位標為:[%d,%d] ",nMin,min.x,min.y);
printf("最大值為:%d,最大值位標為:[%d,%d]",nMax,max.x,max.y);
return0;
}