题目:将矩阵A[4][5]中值(行中所有数的和)为最大的那一行元素与首行元素对换。 具体要求如下:
①矩阵A的数值从键盘输入。
②以矩阵的形式输出对换后的矩阵。
思路:建立一个二维数组,从键盘上获取矩阵数据输入到二维数组中,然后算出每一行的和,进行比较,记录和最大行的行数,然后将第一行与和最大的一行进行对换,再输出即可
代码:
#include<stdio.h>
int main()
{
#define I 4
#define J 5
int i,j,t,k,max=0,sum=0,A[I][J];
//k-所有行中和最大的那一行的行数
for(i=0;i<=I-1;i++)
{
printf("请输入矩阵第%d行数据:",i+1);
for(j=0;j<=J-1;j++)
scanf("%d,",&A[i][j]);
}
for(j=0;j<=J-1;j++)
max+=A[0][j];
//求出第一行的和
for(i=0;i<=I-1;i++)
{
for(j=0,sum=0;j<=J-1;j++)
sum+=A[i][j];
if(sum>max)
{
k=i;
max=sum;
}
}
//找出最大的一行
if(k!=0)
{
for(j=0;j<=J-1;j++)
{
t=A[0][j];
A[0][j]=A