基于visual Studio2013解决C语言竞赛题之1067间隔排序







题目


解决代码及点评

/*
功能:间隔元素排序。用随机函数产生25个[25,75]之间的整数, 把它送到一维数组M中。
      要求对M[I],M[I+J],M[I+2*J],…这些元素按从小到大的顺序排序。
	  J的值由键盘输入,I从1到J变化。实际上是以J为间隔排了J个对列,每个对列中从小到大排序。

 
时间:3:03 2013/10/26
*/

#include<stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
	time_t t;
	srand((unsigned)time(&t));			//随机函数发生器
	int a[25];
	for(int i=0;i<25;i++)
	{
		a[i]=rand()%50+25;//用随机函数产生25个[25,75]之间的整数,存入数组中
		if(i%5==0)printf("\n");
		printf("%3d",a[i]);
	}

	printf("\n\n");
	int j;
	scanf_s("%d",&j);
	for(int i=0;i<=j;i++)
	{
	for(int k=i;k<25;k+=j)
		{
			if(k+j<25)
			{
				for (int t=k+j;t<25;t+=j)
				{
					if(a[k]>a[t])
					{
						a[k]=a[k]+a[t];
						a[t]=a[k]-a[t];
						a[k]=a[k]-a[t];
					}
				}
			}
		}
	}

	printf("\n\n");
	for(int i=0;i<25;i++)
	{
		if(i%5==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-10 10:45  三少爷的剑123  阅读(148)  评论(0编辑  收藏  举报

导航