作业帮 > 综合 > 作业

在二维数组a中选出各行最大的元素组成一个一维数组b.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 20:14:47
在二维数组a中选出各行最大的元素组成一个一维数组b.

void main()
{
  int
a[][4]={{10,16,87,65},
                 {14,32,11,108}, 
                 {10,25,12,37}};
  int b[3],i,j,max;
  for(i=0;i<3;i++)
  {  max=a[i][0];
     for(j=1;j<4;j++)
     {if(a[i][j]>max)                 
      max=a[i][j];
     }
    b[i]=max; 
  }
/*输出矩阵a*/
 for(i=0;i<3;i++)
  {
    for(j=0;j<4;j++)
       printf("%5d",a[i][j]);
    printf(“\n”); 
   }
 /*输出矩阵b*/
 for(i=0;i<=2;i++)
        printf("%5d",b[i]);
 printf("\n");
}
求每一步步骤 怎么样才容易记住
void main()
{
  int a[][4]={{10,16,87,65}, {14,32,11,108}, {10,25,12,37}};//a[3][4]

  int b[3], i, j, max;//有没有发现这里下标是3.所以可以提示是行排列.因为是三行所以最大的只会有3个对吧

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

  {  max=a[i][0];//每一行的第一个

     for(j=1;j<4;j++)//每一行除第一个以外的也就要从第二个开始数了,那你看这里下标是不是第二个到最后一个?

     {if(a[i][j]>max)   
     //其实行排列就是列变行不变(这个是这个类型的题目的核心思想)              
     
      max=a[i][j];

     }

    b[i]=max; //依次输入到b数组中去

  }

/*输出矩阵a*/

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

  {

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

       printf("%5d",a[i][j]);

    printf(“\n”); 

   }//因为上面找每行最大的数没有改变这个数组的本质所以还会是原来的程序.其实先输出再进行上面那个循环的找数也是一样的结果.

 /*输出矩阵b*/

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

        printf("%5d",b[i]);

 printf("\n");//这里就是把三个最大数输出来的

}