【c语言编程】矩阵求最大值或最小值并返回它所在的行号与列号

作者&投稿:长兴歪 (若有异议请与网页底部的电邮联系)
c语言编程:找出二维数组中的最大值最小值及其所在行号列号~

示例:有一个3*4的矩阵,要求编程序求出其中最大的那个元素的值,以及其所在的行号和列号。
代码:
#include<stdio.h>
int main()
{
int i,j,row=0,colum=0,max;
int a[3][4]={{1,2,3,4},{4,5,6,7},{-1,3,-5,10}};
max=a[0][0];
printf("array a:
");
for(i=0;i<=2;i++)
{
for(j=0;j<=3;j++)
{
printf("%5d",a[j]);
}
printf("
");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=3;j++)
{
if(a[j]>max)
{
max=a[j];
row=i;
colum=j;
}
}
}
printf("max=%d
row=%d
colum=%d
",max,row,colum);
return 0;
}
运行结果:

扩展资料:printf用法:
1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。
格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。
要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。
2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

#includevoid main(){int arr[4][3];int i,j,min,max;
int r1=0,r2=0,c1=0,c2=0;for(i=0;i<4;i++)//输进二维数组for(j=0;j<3;j++){printf("Input arr[%2d][%2d]: ",i,j);scanf("%d",&arr[i][j]);}
max=arr[0][0];//令最大值初始化为arr[0][0]min=arr[0][0];//令最小值初始化为arr[0][0]printf("

--------Arr[][]----------
");//打印二维数组
for(i=0;i<4;i++){printf("
");for(j=0;j<3;j++)printf("%5d",arr[i][j]);}
if(arr[i][j]>max){//当arr[i ][j]>max时,令max=arr[i][j],r1=i;c1=jmax=arr[i][j];r1=i;c1=j;
}if(arr[i][j]<min){//当arr[i ][j]<min时,令min=arr[i][j],r2=i;c2=jmin=arr[i][j];r2=i;c2=j;
printf("
This is max: %2d, r: %2d , c: %2d",max,r1,c1);printf("
This is min: %2d, r: %2d , c: %2d",min,r2,c2);printf("

");}

扩展资料:
C语言编程时常犯的错误:
1 、书写标识符时,忽略了大小写字母的区别
main(){ int a=5; printf("%d",A);}
编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
2 、忽略了变量的类型,进行了不合法的运算
代码如下:
main(){ float a,b; printf("%d",a%b);}
%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。
3 、将字符常量与字符串常量混淆
char c;
c=”a”;
在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。
C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a’和‘’,而把它赋给一个字符变量是不行的。

#include<stdio.h>
void main()
{
   int i,j,minv,mini,minj,sum=0;
   int a[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>
void main()
{
   int i,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);
}



#include<stdio.h>
void main()
{
int a[3][4]; //定义该数组
for (int i = 0;i < 3;i++) //输入数组
for (int j = 0;j < 4;j++)
{
scanf("%d",&a[i][j]);
};
int max,min;  //定义最大值和最小值
max = a[0][0] > a[0][1] ? a[0][0] : a[0][1]; //让最大值初始为a[0][0]和a[0][1]中的较大数
min = a[0][0] + a[0][1] - max;  //同上,为较小数
for (int x = 0;x < 3;x++)  //寻找最大值
for (int y = 2;y < 4;y++)
{
max = max > a[x][y] ? max : a[x][y];  //如果大于max则赋值给max
};
for (int x1 = 0;x1 < 3;x1++) //同上
for (int y1 = 2;y1 < 4;y1++)
{
min = min < a[x1][y1] ? min : a[x1][y1];
}
printf("max = %d
",max);
printf("min = %d",min);
}



请问如何用C语言实现矩阵求和?
} printf("矩阵的和为:%d\\n", sum);return 0;} ```在这个示例中,我们定义了一个 3x3 的整数矩阵`matrix`,并将其第一个元素的值设置为 1,第二个元素的值设置为 2,第三个元素的值设置为 3,以此类推。然后,我们使用两个嵌套的 for 循环遍历矩阵的每个元素,并将它们的和存储在变量`...

如何使用c语言编程求矩阵对角线元素之和?
1、首先在电脑中,打开Dev-c++软件,点击“新建源代码”,如下图所示。2、具体程序如下,如下图所示。3、此次的程序最终目的是求出3x3的整型矩阵对角线元素之和,所以要向计算机输入3x3矩阵中的所有元素。4、其次要对输入的矩阵的元素进行放置于相应的位置,以便于之后的计算其对角元素之和。5、最后需...

c语言编程:一个2*3矩阵,求最大值,最小值
思路:先把矩阵的第一个数赋值给最大值和最小值,接着遍历整个矩阵依次和最大值和最小值比较,更新最大值和最小值,最后输出最大值和最小值。 参考代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include "stdio.h" int main() { int a[2][3]={{5,1,2},{6,9,4}},max,min,i,j...

用C语言编程求一个3x3矩阵的第一行所有元素的积
假设一个整数矩阵a[3][3]已经赋值。以下是用C语言编程求一个3x3矩阵的第一行所有元素的积的代码段:int i,y=1;for(i=0;i<3;i++)y*=a[0][i];printf("第一行所有元素的乘积=%d\\n",y);

C语言编程:求矩阵元素中的最大值及所在的行下标数和列下标数。_百度知...
回答:1:思路分析 创建数据结构存放矩阵以及要查找的位置Matrix, Idx 建立动态数组来存放任意大小矩阵用malloc free进行分配释放 初始化矩阵initmatrix 遍历动态数组,依次比较,找到最大值 maxpos 释放动态矩阵freematrix 2:代码编写#include "stdio.h"typedef struct {int row; int col;} Idx;typedef struc...

如何用C语言编写程序求矩阵的值
void main(){ \/\/定义矩阵1、2为输入数据矩阵,3为乘积后的矩阵 int cJuZhen1[4][3],cJuZhen2[3][2],cJuZhen3[4][2];\/\/定义两个指针*p1,*p2分别指向矩阵1、2 int *p1,*p2,i,j;p1=&cJuZhen1[0][0];p2=&cJuZhen2[0][0];\/\/输入矩阵1的数据 printf("请输入4*3的矩阵A:...

【c语言编程】矩阵求最大值或最小值并返回它所在的行号与列号_百度知...
minj=j+1; } if(i==j) sum+=a[i][j]; } printf("矩阵中最小值为%d,它在第%d行,%d列!\\n",minv,mini,minj); printf("矩阵中对角线元素之和为%d",sum);}你需要动态的可以这样写:include<stdio.h>#include<stdlib.h>void main(){ int i,j,minv,mini...

c语言:求任意矩阵每行每列上的元素之和
void juzhenhe(int* juzhen,int hang,int lie,int* retHang,int* retLie){\/\/juzhen为一维数组,矩阵按照行存储,返回值数组需要实现初始化,并清零 int i,j;for(i=0;i<hang;i++)for(j=0;j<lie;j++){ retHang[i]=+juzhen[i*hang+j];retLie[j]=+juzhen[i*hang+j];} } ...

在C语言中,编写程序,求下列矩阵各行元素之和及各列元素之和
int i, j, r_sum[3], c_sum[5]; for (i=0; i<3; i++)\/\/ 各行的和 { r_sum[i] = 0; for (j=0; j<5; j++) { r_sum[i] += a[i][j]; } printf("第%d行的和为:%d\\n", i, r_sum[i]); } for (j=0; j<5; j++)\/\/ 各列的和 { c_sum[j] = 0; for (i...

C语言编程求出4×4矩阵中每行的最大值,输出最大值及位置,并输出他们的...
include<stdio.h>int main( ){ int num[4][4],*p=&num[0][0],*pSave,max[4]={0,0,0,0},sum=0,i=0; printf("输入矩阵16个数字:\\n"); while(p<=&num[3][3])\/\/输入矩阵数字 { scanf("%d",p++); } p=&num[0][0]; while(1)\/\/总循环 ...

潞西市17714556063: 怎么用C语言同时求出矩阵中每行的最大值与最小值 -
养萧二十:[答案] 将每行看着一个一维数组,然后问题转换为求一维数组的最大最小值 int find_max_min(int *array,int len,int *min, int *max) { int i=0; min=max=array[i]; while(imax) { max=array[i]; } if(array[i]

潞西市17714556063: c语言编程:一个2*3矩阵,求最大值,最小值 -
养萧二十: 思路:先把矩阵的第一个数赋值给最大值和最小值,接着遍历整个矩阵依次和最大值和最小值比较,更新最大值和最小值,最后输出最大值和最小值. 参考代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16#include "stdio.h" intmain() {inta[2][3]...

潞西市17714556063: 用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...

潞西市17714556063: C语言编程:输入一个M*N的整数矩阵,求其最大值及其所在的行号、列号.(M、N由键盘输入) -
养萧二十: #include<stdio.h> #include<stdlib.h> int main() {int i,m,n,*array;printf("请输入矩阵行数:");scanf("%d",&m);printf("请输入矩阵列数:");scanf("%d",&n);array=(int*)malloc(m*n*sizeof(int));printf("请输入该%d*%d矩阵...

潞西市17714556063: c语言 矩阵求最大值 最小值 菜单包括 求最大值 最小值 输入一个m*n的矩阵 求最大最小值和所在的行号 列号 -
养萧二十: 这个简单的 自己做一下吧 具体思路就是 (1)输入m*n个数据用数组表示a[m][n] (2)用循环对各个数据比大小,For(i=0,i

潞西市17714556063: 矩阵求最大值最小值,菜单包括:求最大值最小值.输入一个M*N的矩阵,求其最大或最小值及其所在的行号、 -
养萧二十: 你的矩阵是怎么表示的,c里面的下标是从0开始的吧 矩阵f mi最小 ma最大 mi=f(0,0);mii=0;mij=0; ma=f(0,0);mai=0;maj=0; for (i=0;i<M;i++){for (j=0;j<N;j++){if (f(i,j)<mi){mi=f(i,j);mii=i;mij=j;}if (f(i,j)>ma){ma=f(i,j);mai=i,maj=j;}} } 我学matlab的,不知道这个语法对不对 i应该是纵坐标的,j是横坐标

潞西市17714556063: 【c语言编程】矩阵求最大值或最小值并返回它所在的行号与列号 -
养萧二十: #include<stdio.h> void main() { int i,j,minv,mini,minj,sum=0; int a[4][4]; printf("请输入矩阵中的16个数:\n"); 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;...

潞西市17714556063: C语言:求矩阵中行和列的最值 -
养萧二十: #include<stdio.h> int main() { int i,j,tem,m,n,a[500][500]; /*m表示行,n表示列*/ int rmax,cmax; /*分别表示每行的最大值和每列的最大值*/ scanf("%d%d",&m,&n); /*读入矩阵的行与列*/ for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); /*...

潞西市17714556063: 用c语言编程输出4*4阶矩阵的最大值、最小值及其下标 -
养萧二十: #include int a[4][4],max,min;int i,j; /*全局变量*/void dx() /*调用函数*/{ max=min=a[0][0]; for...

潞西市17714556063: c语言:求3*4整数矩阵中的最大元素、最小元素、所有元素的平均值. -
养萧二十: #include<stdio.h>int main(void) { int max,small,i,j;double aver;int arr[3][4] = {{13,25,63,84},{51,666,78,8},{191,10,141,412}};int *p;max=small=arr[0][0];for(i=0;i<3;i++){p=&arr[i][0];for(j=0;j<4;j++){if(max<*(p+j))max=*(p+j);aver+=*(p+j);if(small...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网