求矩阵最小值c语言,C语言编程求出3*4矩阵中的最大值与最小值及其所在行和列。问... , C语言编程求出4*4矩阵中每行的最大值,输出最大值及位置,...

导航:网站首页 >

C语言编程求出3*4矩阵中的最大值与最小值及其所在行和列。问... , C语言编程求出4*4矩阵中每行的最大值,输出最大值及位置,

C语言编程求出3*4矩阵中的最大值与最小值及其所在行和列。问... , C语言编程求出4*4矩阵中每行的最大值,输出最大值及位置,并输出...

匿名网友:

我来 #include <stdio.h>#include "stdlib.h"#include "time.h"main(){int i,j,*p,arry34;p=arry0;srand((unsigned)time(NULL));for (i=0;i<3;i++){for (j=0;j<4;j++){arryij = rand()%100+1;}}printf("\n -----------");while(*p){printf("%d ",*p);p++;}printf("\n ----------");for (i=0;i<3;i++){for (j=0;j<4;j++){printf("%d ",arryij);}}printf("\n -----------");return 0; } 还有点问题 我回家继续改 下班了

匿名网友:

第10行max=0; 应该为max=a00;因为就像楼上说的 如果读入的所有数都是负的那就没办法找出最大数了应该为max=a00;就是把矩阵的第一个数先赋给最大值让所有的数都和第一个数比较,不要赋负无穷比较好因为负无穷既不好表示输入也麻烦。

第6行int row,column; 该为 int row=0,column=0 你的row,column是没有赋值,赋值语句是在if里出现的如果第一个就是最大数那么if就不能执行 row,column就没有值了。

匿名网友:

代码如下:#include <stdio.h>#include <stdlib.h>#define N 4int main(){ // 定义一个4*4的数组int matrixNN = {45, 85, 63, 12,52, 89, 41, 32,11, 14, 28, 24,36, 63, 65, 49};int max = 0; // 最大值int pos = 0; // 最大值位置int sum = 0; // 最大值和for (int i = 0; i < N; i++) {max = matrixi0;pos = 0;for (int j = 0; j < N; j++) {if (matrixij > max) {max = matrixij;pos = j;}}sum += max;printf"第%d行最大值是%d,位置:%d\n", i, max, pos;}printf"最大值之和:%d\n", sum;system("pause");return 0;}运行结果:

匿名网友:

因为max最终放的是最大的值,所以用判断语句判断max是否小于aij,如果max 小的话,就说明原来赋给max的值不是最大值,有一个值比它大,那么,就要把这个大赋给max,循环完后,max就与所以的值都比了一次,找到了最大的。

比如我有3个数,找出一个最大的。

int a2={1,2,3,} //数组a0=1,a1=2,a2=3max=a1 //max=1if (maxif(max最后max里放的是最大的数。

即a3的值3。

另外,aij中的i 和j 是循环中的变量,i 对第几行,j 对应第几列。

所以只要找到最大值,就用其它变量保存,那么就知道了该数的i 和 j ,即最大值所在的行号和列号。

匿名网友:

执行max=a00后max=1if(aij>max)此时max值不能确定,因为前面有两个循环嵌套,执行完if(aij>max) //此处i j值不确定,不知道max是否比aij大{max=aij; //此处i j值不确定,max可能会变化row=i;colum=j;}后会执行 j++ ,如果此时 j3 则执行 i++;j=0; 然后再次执行 if(aij>max) 语句 ,此时的i、j都不能确定,此前max的值有可能变化了

匿名网友:

#includevoid main () {int a34={4,5,2,7,11,32,26,6,-4,26,5,12};int i,j,minrow,mincol,maxrow,maxcol,maxval,minval;maxval=minval=a00;minrow=mincol=maxrow=maxcol=0;for(i=0;ifor(j=0;jif (aijif (aij>maxval) {maxval=aij;maxrow=i;maxcol=j;}}printf("maxval=%d,maxrow=%d,maxcol=%d\n",maxval,maxrow,maxcol) ;printf("minval=%d,minrow=%d,mincol=%d\n",minval,minrow,mincol);}

匿名网友:

首先我认为这个程序还是有点小问题的,主函数的类型应该是void,因为如果没规定就会默认为int型的。

#include "stdio.h"void main(){ int a46={0},i,j,max,min,h1,h2,l1,l2;//这些应该就不用说明了 printf"请输入一个3*3矩阵:\n"; for(i=0;imax){max=aij;h1=i,l1=j;} if(aij同理可得minprintf"最大值为=%d,所在行为 :%d,所在列为 :%d.\n最小值为=%d,所在行为 :%d,所在列为 :%d.\n",max,h1,l1,min,h2,l2;}...

问题推荐

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值