小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

基于visual Studio2013解决C语言竞赛题之1055排序






题目


解决代码及点评

/*
功能:已知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






posted on 2013-12-09 23:27  牛栏山1  阅读(145)  评论(0编辑  收藏  举报

导航