C语言~输入5行4列的整型二维数组,按每行的和值从小到大排序后输出调整后的二维数组

如题所述

# 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;
}

测试结果:

已经测通过了,对于程序存在问题可以继续追问。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-20
0000dfgdfg
第2个回答  2013-11-20
我学c语言可是我真的听不懂因为我是外国人,要不我会帮助你追问

你哪国人

追答

我是阿拉伯的

追问

好巧啊,我也是

追答

那在百度知道干嘛。。想要抄作业吗😄

追问

对啊,这中文阅读有难度啊

追答

我也觉得呗,可是没有办法就要努力学习,希望你的学习成功

相似回答