# include <stdio.h>
#define M 5 //行数
#define N 4 //列数
int sum(int x[], int n)//求一个行向量之和
{
int result = 0;
while(n--)
result += x[n];
return result;
}
void change(int x[], int y[], int n)//交换两个行向量
{
int temp;
while(n--)
{
temp = x[n];
x[n] = y[n];
y[n] = temp;
}
}
int main(void)
{
int score[M][N];
int i,j;
//数据输入
printf("输入数据:\n");
for(i=0; i<M; i++)
{
for(j=0; j<N; j++)
{
scanf("%d",&score[i][j]);
}
}
//按求和排序
for(i=0; i<M; i++)
{
for(j=i; j<M; j++)
{
if(sum(score[i],N) > sum(score[j],N))
change(score[i],score[j],N);
}
}
//输出
printf("调整后数据:\n");
for(i=0; i<M; i++)
{
for(j=0; j<N; j++)
{
printf("%d ",score[i][j]);
}
printf("\n");
}
return 0;
}
测试结果:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/279759ee3d6d55fb249dde3b6f224f4a20a4dd50?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
已经测通过了,对于程序存在问题可以继续追问。