本文相关题解仅供参考,请读者独立完成实验题目!
2019-2020 学年 第 1 学期
计算机科学与技术学院、软件学院 《程序设计基础》实验题目(2019 级补充)
考查时间:2019 年 12 月
一、
编写子函数,对于给定的二维整型数组,首先对每行从小到大排序,之后对每列从小到大排序(上述两步记为 1 轮);反复执行上述排序过程,直到没有变动为止。
注:作为实参的二维整型数组,每行元素个数、每列元素个数均在[4, 10]之间。 函数原型为:int msort(int a[][10], int m, int n) //m 表示行数、n 表示列数、函数返回执行的轮数。
算法的设计与分析:
本程序使用冒泡排序。先进行一次行排序,再进行一次列排序,每一个回合完成计数器加一。当所有元素排序结束后返回实际进行回合次数。
源代码:
#include<stdio.h>
int msort(int a[][10],int m,int n){
//m为行 n为列
int i,t,j,r;
int flag;//标识是否进行变换
int cnt=0;
while(flag){
/*冒泡排序*/
flag=0;
for(i=0;i<m;i++)//i作为行
for(t=0;t<n-1;t++)
for(j=t+1;j<n;j++)
if(a[i][t]>a[i][j]){
r=a[i][t];
a[i][t]=a[i][j];
a[i][j]=r;
flag=1;
}
for(i=0;i<n