清远汽车网

    输入3*4阶矩阵,输出每行最大值

      发布时间:2020-09-09

      } /,小于a[3],a[2]=3
      max=a[1] /a[3]) max=a[3] 因max原来的值等于2了。
      int a[2]={1,现在要把大的数a[2]给max
      if(max<,所以,2,循环完后;/,j 对应第几列;数组a[0]=1,就用其它变量保存,如果max 小的话,找到了最大的;max=1
      if (max<,有一个值比它大;/,所以,现在要把大的数a[3]给max
      最后max里放的是最大的数,找出一个最大的。

      比如我有3个数,max就与所以的值都比了一次,i 对第几行。所以只要找到最大值,那么就知道了该数的i 和 j ,就说明原来赋给max的值不是最大值因为max最终放的是最大的值,a[1]=2。

      另外,小于a[2],即最大值所在的行号和列号,所以用判断语句判断max是否小于a[i][j],那么,a[i][j]中的i 和j 是循环中的变量;a[2]) max=a[2] 因为max 原来的值等于1,3,就要把这个大赋给max。即a[3]的值3

      回复:

      max表示最大值
      a[i][j] 表示横下标为i 列下标为j 的二维数组a 的值
      假设数组的值大于max就执行这句max=a[i][j] 就是将大的值赋值给max
      所以max总是最大值

      回复:

      int i;3;<,j,n;再重写一次循环把if语句改成(n==a[i][j])输出i;j< 初始化数组n=a[0][0];i++) for(j=;n)n=a[i][j];for(i=0;j++)if(a[i][j]>,a[3][4]

      回复:


      for(i=0,{9,{5,c;%d最大数\,d;3;
      }
      }
      printf(",max.h>,12}};
      c=i,10;
      void main()
      {int a[3][4]={{1,c,max,6;j<=a[i][j])
      {max=a[i][j],2;stdio,j;j++)
      if(max<,4};;n%d行号\4,d);
      int i,11,3,8};
      d=j;
      max=a[0][0]调试过了没有问题:
      #include<i++)
      {for(j=0;n%d列号",7;i<

      回复:

      max=a[0][0],这是把二维数组首地址的数赋给max;
      接下来的 for(i=0;i<3;i++)是主函数行的循环,说明共三行;
      for(j=0;j<4;j++)是列的循环,伴随着行一起移动;
      if(max<=a[i][j]),这是一个判断语句,就是拿数组a第i行第j列的数与max(首地址的数)比较,
      当满足条件时就把i行j列的数值赋值给max;
      即:max=a[i][j]; c=i; d=j;
      一次次地比较下来,凡是比max大的数,都会与max的值进行交换,
      所以max只会保留最大的数。

      这就是我的解答啦,可能你还是有点不懂,
      但是我已经尽力了哦,祝你好运。。。。。

      回复:

      if(max<=a[i][j])
      这个是条件判断,如果a[i][j]大于max,则
      {max=a[i][j];
      c=i;
      d=j;
      }
      将当前的a[i][j]赋给max

      如果没有比max大,则不执行
      {max=a[i][j];
      c=i;
      d=j;
      }
      而是转到{for(j=0;j<4;j++)
      调出下一个数,与max比较

      因此,在已经进行比较 完成 的数之中,max总是代表的最大一个。

      回复:

      一楼的程序有点小错误,我修改完了,VC++6.0编译通过,你直接copy就可以了。
      #include<stdio.h>
      int main()
      {
      int a[4][5]={{1,2,3,4,5},{6,7,8,9,10},{110,12,13,14,15,},{16,17,18,19,20}};
      int i,j;
      int maxi=0;
      int maxj=0;
      int maxs=a[0][0];
      for(i=0;i<=3;i++)
      {
      for(j=0;j<=4;j++)
      {
      //scanf("%d",&a[i][j]);
      if(a[i][j]>maxs){maxs=a[i][j];maxi=i;maxj=j;}
      }
      }
      printf("%d %d %d",maxs,maxi+1,maxj+1);
      return 0;
      }

      回复:

      那么把所有的数值循环一遍后没出现一次a[i][j]比max大的情况,用a[i][j]替换掉max,留下的就是最大的,因为没有被比它更大的替换掉

      回复:

      i<=4;%d"maxj=j;=3;i++)
      for(j=1;j<,maxi=0#incude<,j,maxs,maxj),maxs=-2147483648,maxj=0;
      if(a[i][j]>.h>j++)
      {
      scanf("
      for(i=1,&a[i][j]);;%d %d %d"maxi=i;stdio,maxi;;
      return 0;maxs){maxs=a[i][j],i;
      int main()
      {
      int a[4][5];}
      }
      printf("

      回复:

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

      回复:

      int i,j,n,a[3][4]; 初始化数组n=a[0][0];for(i=0;

      回复:

      #include int main(){ int i,j,a[3][4],max; for(i=0;i

      回复:

      下载文件:最大值.rar

      回复:

      int a[3][4]={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} }; int main() { int i;int j; int max=a[0][0]; for(i=0;i

      回复:

      public class Abc { public static void main(String[] args) { int[][] arr = { {1, 2, 3, 4}, {5, 6, -1, 8}, {9, 22, 11, 12}}; int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; int col_min = 0, row_min = 0; int col_max = 0,...

      回复:

      调试过了没有问题: #include void main() {int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i,j,c,d,max; max=a[0][0]; for(i=0;i

      回复:

      #include main() { int i,j,k1,k2,data[3][4]; for(i=0;i

      回复:

      #includeint main(){int max(int arr[3][4]);int m;int arr[3][4];int i,j;printf("Please input the arr:\n");for(i=0;i

      回复:

      if(j==4) printf("%d\n",max); 去掉if(j==4) 加大括号。 改成这样: #define M 3 #define N 5 #include void main() { int a[M][N],max; int i,j; for(i=0;i

        上一篇:如何使粉状火药成固状 下一篇:咸宁香泉现代农业生态园工程是政府工程项目吗

        返回主页:清远汽车网

        本文网址:http://0763auto.cn/view-24881-1.html
        信息删除