/* 功能:已知A是有30个元素的整型数组,编写一个对A[I1]到A[I2](I1≤I2)之间的元素排序的函数(从大到小排序) 请调用上述函数先将A[5]至A[20]之间的元素排序,然后将A中的所有元素值输出。再调用上述函数对A[15]至A[30]之间的元素排序, 最后再将A中30个元素值输出。 要求:1) 输入输出均由主函数实现。 2) 输出时每10个元素占1行。 时间:1:30 2013/10/26 */ #include<stdio.h> #include <stdlib.h> void order55(int a[],int n,int s,int t) { if(s>t && s<n && t<n) //保证数据正确性! { printf("ERROR"); return; } else { for(int i=s,j=0;i<=(s+t)/2;j++,i++) //从第i到第j个元素遍历,并且排序 { a[i]=a[i]+a[t-j]; a[t-j]=a[i]-a[t-j]; a[i]=a[i]-a[t-j]; } } } void main() { int a[30]; for (int i=0;i<30;i++) //输入数组 { scanf_s("%d",&a[i]); } puts("Before changes :the array is :"); for (int i=0;i<30;i++) { if(i%10==0)printf("\n"); printf("%3d",a[i]); } order55(a,30,4,19); //第一次排序 printf("\n1st changes:\n"); for (int i=0;i<30;i++) { if(i%10==0)printf("\n"); printf("%3d",a[i]); } order55(a,30,14,29); //第二次排序 printf("\n1st changes:\n"); for (int i=0;i<30;i++) { if(i%10==0)printf("\n"); printf("%3d",a[i]); } system("pause"); }
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn