C语言编程:求矩阵元素中的最大值及所在的行下标数和列下标数。

作者&投稿:谷饱 (若有异议请与网页底部的电邮联系)
【c语言编程】矩阵求最大值或最小值并返回它所在的行号与列号~

#includevoid 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#includevoid 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;iminv) { minv=a[i][j]; mini=i+1; minj=j+1; } } printf("矩阵中最大值为%d,它在第%d行,%d列!
",minv,mini,minj);}

#include
#include
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矩阵:
",m,n);
for(i=0;i<m*n;i++)
scanf("%d",&array[i]);
int max=array[0];
int index=0;
for(i=1;i<m*n;i++)
{
if(max<array[i])
{
max=array[i];
index=i;
}
}
printf("您输入的矩阵中的最大值为:%d
",max);
printf("它所在的行号和列号分别是:%d,%d
",(index/n)+1,(index%n)+1);
return 0;
}
以上就是我的回答

#include<stdio.h>

void main()

{

 int a[5][5],n,i,j,max,maxi=0,maxj=0;

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

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

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

 max=a[0][0];

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

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

   if(a[i][j]>max)

    {max=a[i][j];maxi=i;maxj=j;}

 printf("max=a[%d][%d]=%d
",maxi,maxj,max);

}



1:思路分析
   创建数据结构存放矩阵以及要查找的位置Matrix, Idx
   建立动态数组来存放任意大小矩阵用malloc free进行分配释放
   初始化矩阵initmatrix
   遍历动态数组,依次比较,找到最大值 maxpos
   释放动态矩阵freematrix
   
2:代码编写

#include "stdio.h"
typedef struct {int row; int col;} Idx;
typedef struct {int n; double **data;} Matrix;
void maxpos(Matrix* m, Idx* id) {
    int i, j;
    double max = m->data[0][0];
    for (i = 0; i < m->n; i++) {
        for (j = 0; j < m->n; j++) {
//查找最大值
            if (m->data[i][j] >= max) {
                id->row = i;
                id->col = j;
max = m->data[i][j];
            }
        }
    }
}
void initmatrix(Matrix* m) {
int i, j;
int n;
printf("Input Matrix Size:");
scanf("%d", &n);
if (n == 0) return;
m->n = n;
//动态分配行存储
m->data = (double**) malloc(sizeof(double*)*m->n);
printf("Input Matrix elements:
");
for (i = 0; i < m->n; i++) {
   m->data[i] = (double*) malloc(sizeof(double)*m->n);
   //动态分配列存储
   for (j = 0; j < m->n; j++)
     scanf("%lf", &m->data[i][j]);
}
}

void freematrix(Matrix* m) {
int i;
for (i = 0; i < m->n; i++) free(m->data[i]);
free(m->data);
m->n = 0;
}

int main() {
Matrix m;
Idx    idx;
initmatrix(&m);
maxpos(&m, &idx);
printf("Max elements %lf locate at row %d col %d
", 
       m.data[idx.row][idx.col], idx.row, idx.col);
freematrix(&m);
return 0;
}
3: 结果演示
Input Matrix Size: 3
Input Matrix elements:
1 7 4
2 9 8
10 2 5
Max elements 10.000000 locate at row 2 col 0


#include<stdio.h>
#define N 5
#define M 5
void main()
{
int i,j,max,maxi,maxj,a[N][M]={0};
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
max=a[0][0];maxi=0;maxj=0;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>max){max=a[i][j];maxi=i;maxj=j;}
printf("%d %d %d",max,maxi,maxj);
}


给出一个矩阵(二维数组),通过编程计算一下矩阵上三角元素的和,要求元素...
代码如下:include<stdio.h> int main() { int i, j;int max, row, colum;int a[3][4] = { { 1, 2, 3, 4 }, { 9, 8, 7, 6 }, { -10, 10, -5, 2 } };max = a[0][0];for (i = 0; i < 3; i++)for (j = 0; j < 4; j++)if (max < a[i][j...

在C语言中,编写程序,求下列矩阵各行元素之和及各列元素之和
求一个5*5的整型矩阵中各行各列元素之和 3 2013-12-29 求c语言编程:输入一个5行5列的矩阵,计算该矩阵最外圈元素之... 2 2012-05-02 C语言编写程序,求一个5 x 5矩阵的每行和、每列和、所有元... 2008-11-25 C语言编程题,求出如下所示矩阵中各行元素之和,并以矩阵形式输... 1 2016-05...

...并求这个4*4矩阵主对角线元素之和,并输出.球C语言编程
printf("%-5d", a[i][j]);\/\/ 输出该数组矩阵;printf("\\n");} printf("\\n第一条对角线的元素值分别为:\\n");for(i=0; i<4; i++){ printf("a[%d][%d]=%-3d", i, i, a[i][i]);\/\/打印第一条对角线的元素及其值;sum1 += a[i][i]; \/\/求出第一条对角线的元素...

java编程:有一个3*4的矩阵,要求编程输出其中值最大的那个元素的值,以及...
亲测。。。public class Max { public static void main(String[] args){ int[][] array = {{3,5,6,4 },{4,5,56,68 },{45,56,98,65}};int i=0,j=0;int temp = array[0][0];for(;i<3;i++)for(j=0;j<4;j++){ if(array[i][i]>temp) temp = array[i][j];}...

Matlab中逻辑运算符有哪些?运算规则是什么?
1、a&b :与运算,两标量或两元素均非0则返回1,否则返回0.注意,在if 条件语句中,两个表达式的与操作用&&。2、a|b : 或运算,两标量或者两元素至少有一个是非0则返回1,否则返回0.在条件语句中,两个表达式的或用||。3、~a : 非运算,对作用的标量或矩阵元素求补,如果标量或者矩阵元素...

输入一个3*4矩阵 A,矩阵元素为整型,将其行列元素位置互换,也就是求其...
思路:首先通过两层for循环接受一个3*4的矩阵,接着求矩阵的转置,通过两层for循环互换矩阵的行和列,最后输出互换后的矩阵。工具:采用c语言编程。参考代码:include<stdio.h>int main(){int i,j,a[3][4],b[4][3];\/\/因为a是3*4的矩阵,所以a的转置矩阵是4*3的矩阵 for(i=0;i<3;i...

C语言编程:自定义一个5*5的矩阵,找出矩阵中最大的数,并输出其所在的行...
代码文本:include "stdio.h"define N 5 void dispmatrix(int (*p)[N]){ int i,j;for(i=0;i<N;i++){ for(j=0;j<N;printf("%4d",p[i][j++]));putchar('\\n');} } void findmax(int p[][N]){ int i,j,mi,mj;for(mi=mj=i=0;i<N;i++)for(j=0;j<N;j++)if...

C++(.有一个矩阵,编程求其中值最大的那个元素的值,以及其所在的行号和列...
你用一个二元数组a[i][j]来存储你这个矩阵,i和j的值,根据矩阵的行数和列数进行选择。再将每一行,每一列的值存入这个二元数组。例如第一行第一列和值为5,即a[0][0]=5.然后定义一个变量x,将a[0][0],即矩阵的第一值的数值赋给它。最后做一个for的二次循环,依次拿矩阵的每个值和...

编程求一个4行5列元素的转置矩阵(即将矩阵元素的行列相交换)
在大多数编程语言中,矩阵的表示方法都是二维数组,即数组的数组,既然已经知道了行列数,那就新建一个5行4列的二维数组,新数组的数暂时用0来表示,然后用一个嵌套循环把原来矩阵中的元素重新排列一下替换掉新数组的0们,以python 语言为例 A=[[1,2,4,8,4], [18,12,42,9,45], [17,21,...

编程实现将一个3*4的矩阵元素各右移动一列,最后一列移至第一列_百度...
include <stdio.h> void main(){ int a[3][4];int i,j,m;\/\/输入3*4的矩阵 puts("输入3*4的矩阵:\\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);\/\/输出原矩阵 puts("原矩阵:\\n");for(i=0;i<3;i++)for(j=0;j<4;j++){ printf("%5d",a...

舒城县17137805330: C语言 求矩阵中最大项并且保存在文件中
澄婷安捷: #include &lt;stdio.h&gt; #define M 3 /*矩阵行数*/ #define N 3 /*矩阵列数*/ int main() { freopen("矩阵.txt","w",stdout);/*将最大值保存在目录下的矩阵.txt文件里*/ int i,j,max=-32765,a[M][N]; for(i=0;i&lt;M;i++) /*输入M行N列矩阵*/ for(j=0;j&lt;N;j++) { scanf("%d",&amp;a[i][j]); if(a[i][j]&gt;max) max=a[i][j]; } printf("%d\n",max); return 0; }

舒城县17137805330: c语言 有一个3*4的矩阵,求所有元素中的最大值 -
澄婷安捷: 核心代码:int m[3][4] = ("你的矩阵"); int max=m[0][0]; for(i=0;i{ for(j=0;j { if(max} } printf("最大值为%d",max);

舒城县17137805330: 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矩阵...

舒城县17137805330: C语言编程编程从键盘输入一个3*4的矩阵,求其最大元素的值,以及其所在的行号和列号,并显示该矩阵. -
澄婷安捷: #include main() { int i,j,k1,k2,data[3][4]; for(i=0;i max ) { max=data[i][j], k1=i; k2=j; } printf("i=%d j=%d max=%d", k1, k2, max); }

舒城县17137805330: C语言.求一个4X4矩阵的对角线元素之和,并找出对角线元素中的最大值.. -
澄婷安捷:[答案] #include "stdio.h" int main() { int shuzu[4][4]; int i; int j; int maxs; int sum=0; for (i=0;i

舒城县17137805330: 【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;...

舒城县17137805330: 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]...

舒城县17137805330: c语言:在3*4的矩阵中,求元素的最大值 -
澄婷安捷: int a[3][4]={{4,7,2,9},{32,44,67,53},{12,33,87,55}}; int i,j,max=0; for(i=0;i<3;i++) for(j=0;j<4;j++) { if(max<a[i][j]) max = a[i][j]; } printf("元素最大值是%d\n",max);

舒城县17137805330: C语言有一个3*4的矩阵,用c语言编写程序找出其中值最大的元素,并输出最大值、最大值所在的行号和列号. -
澄婷安捷: 没出现一次a[i][j]比max大的情况,用a[i][j]替换掉max,那么把所有的数值循环一遍后,留下的就是最大的,因为没有被比它更大的替换掉,所以没有比max更大的数

舒城县17137805330: C语言编程 求3*4矩阵中最大值,并输出该元素行值和列值 -
澄婷安捷: int i,j,n,a[3][4]; 初始化数组n=a[0][0];for(i=0;<3;i++) for(j=;j<;j++)if(a[i][j]>n)n=a[i][j];再重写一次循环把if语句改成(n==a[i][j])输出i,j

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