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

时间:2022-10-16 12:27:13



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

题目

基于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)新建工程

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

2)选择工程

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

3)创建完工程如下图:

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

4)增加文件,右键点击项目

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

5)在弹出菜单里做以下选择

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

6)添加文件

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

7)拷贝代码与运行

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

程序运行结果

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

代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn