利用函数进行模块化设计的一个案例

/*=====================================
请开发一个自上而下的模块化程序,用于完成以下任务
总时间限制: 1000ms 内存限制: 65536kB
描述
请开发一个自上而下的模块化程序,用于完成以下任务 
a)  读取两个整数数组,数组的元素未经排序。 
b)  将数组元素按递增排序。 
c)  将已排序的数组合并。 
d)  显示已排序的列表。 
使用函数来完成以上每个任务。主函数中只包含函数调用。

输入
输入三行
第一行两个数字 表示两个数组元素的个数
第二行第一个数组
第三行第二个数组
输出
输出一行,合并后的数组,注意这时仍然是第一个数组在前,第二个数组在后
两个数组分别排序,但是合并的数组并没有排序
注意看例子!!!!!
样例输入
4 5
2 3 4 1
3 4 5 1 2
样例输出
1 2 3 4 1 2 3 4 5
提示
主函数中只有调用函数的四个语句
其他语句都要在函数中完成

======================================*/
 1 #include<stdio.h>
 2 void readIntArray(int a[],int len);//输入数组 
 3 void sort(int a[],int len);// 将数组元素按递增排序
 4 void showArray(int a[],int len); //显示已排序的列表。
 5 int main()
 6 {
 7     int a[100],b[100],lena,lenb;
 8     freopen("5.in","r",stdin);
 9     scanf("%d%d",&lena,&lenb);
10     readIntArray(a,lena);
11     readIntArray(b,lenb);
12     sort(a,lena);
13     sort(b,lenb);
14     showArray(a,lena);
15     showArray(b,lenb);
16     return 0;
17 }
18 void readIntArray(int a[],int len)//  形式参数 
19 {
20     int i;
21     for(i=0;i<len;i++)
22     {
23         scanf("%d",&a[i]);
24     } 
25 }
26 void showArray(int a[],int len)
27 {
28     int i;
29     for(i=0;i<len;i++)
30     {
31         printf("%d ",a[i]);
32     }
33 }
34 void sort(int a[],int len)
35 {
36     int i,j,k,t;
37     for(i=0;i<len-1;i++)
38     {
39         k=i;
40         for(j=i+1;j<len;j++)
41         {
42             if(a[j]<a[k]) k=j;
43         }
44         if(i!=k)
45         {
46             t=a[i];a[i]=a[k];a[k]=t;
47         }
48     }
49 }
原文地址:https://www.cnblogs.com/huashanqingzhu/p/3541736.html