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