天花板编程手把手计划-第1期-第1天

题目:

给出任意一个N*N的矩阵,将里面的数字按照从左上到右下有小到大排序,之后计算出新矩阵对角线上的数字总和(每个位置只参与一次计算)。例如:

天花板编程手把手计划-第1期-第1天_第1张图片
145902-813936ab7b282e90.jpg

解题思路:

1.将N*N矩阵里的数据按一维数组输入 2.再按冒泡法进行排序 3.将一维数组转化为为二维数组(矩阵)4.分奇偶计算对角线之和

源码:

#include 

#define N 4

void main()
{
    int i,j,t,a[50],b[N][N],sum=0;
    
    //按一维数组输入
    printf("N=%d\n",N);
    printf("请输入N*N个数据:");
    for(i=0;ia[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    printf("排序后得数据为:");
    for(i=0;i

执行结果:

天花板编程手把手计划-第1期-第1天_第2张图片
aa.jpg

总结:

提到排序,就只想到冒泡法(也只学了冒泡法),而冒泡法针对二维数组就比较麻烦(自己可能也不太会控制),就又把数据转化为一维再比较。
整体上觉得自己的方法很麻烦,更多排序方法有待提高。程序的简化也需要自己思考。

你可能感兴趣的:(天花板编程手把手计划-第1期-第1天)