设一组数有10个元素,已按升序排好。现要求编写一程序,它能够吧从指定位置开始的n个数据按逆序重新排列,
并输出新的完整数列(例如,原数列为2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到的新数列位2,4,6,16,14...
并输出新的完整数列(例如,原数列为2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到的新数列位2,4,6,16,14,12,10,8,18,20)。
展开
2个回答
展开全部
C语言源代码:
#include "stdio.h"
/* 对数组startIndex位置起,长度为length的元素进行逆序排列 */
void sort(int arr[], int startIndex, int length)
{
int i, j, k;
int temp;
for(i=0; i<length-1; i++)
{
k = i;
for(j=i+1; j<length; j++)
if(arr[j+startIndex] > arr[k+startIndex])
k = j;
if(k != i)
{
temp = arr[k+startIndex];
arr[k+startIndex] = arr[i+startIndex];
arr[i+startIndex] = temp;
}
}
}
void main()
{
int arr[] = {2,4,6,8,10,12,14,16,18,20};
int size = 10;
int startIndex = 3, length = 5;
int i;
printf("before sort : ");
for(i=0; i<size; i++)
printf("%d ", arr[i]);
printf("\n");
sort(arr, startIndex, length);
printf("after soft : ");
for(i=0; i<size; i++)
printf("%d ", arr[i]);
printf("\n");
}
#include "stdio.h"
/* 对数组startIndex位置起,长度为length的元素进行逆序排列 */
void sort(int arr[], int startIndex, int length)
{
int i, j, k;
int temp;
for(i=0; i<length-1; i++)
{
k = i;
for(j=i+1; j<length; j++)
if(arr[j+startIndex] > arr[k+startIndex])
k = j;
if(k != i)
{
temp = arr[k+startIndex];
arr[k+startIndex] = arr[i+startIndex];
arr[i+startIndex] = temp;
}
}
}
void main()
{
int arr[] = {2,4,6,8,10,12,14,16,18,20};
int size = 10;
int startIndex = 3, length = 5;
int i;
printf("before sort : ");
for(i=0; i<size; i++)
printf("%d ", arr[i]);
printf("\n");
sort(arr, startIndex, length);
printf("after soft : ");
for(i=0; i<size; i++)
printf("%d ", arr[i]);
printf("\n");
}
展开全部
来一个通用的,C语言编的
#include<stdio.h>
main()
{int a[10];
int m,n,i,j,t;
scanf("%d,%d\n",&m,&n);
for(i=0;i<10;i++)
scanf("%d",&a[i]);
j=n+m-2;
for(i=m-1;i<m/2+n-1;i++,j--)
{t=a[i];
a[i]=a[j];
a[j]=t;}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
printf("\n");
}
#include<stdio.h>
main()
{int a[10];
int m,n,i,j,t;
scanf("%d,%d\n",&m,&n);
for(i=0;i<10;i++)
scanf("%d",&a[i]);
j=n+m-2;
for(i=m-1;i<m/2+n-1;i++,j--)
{t=a[i];
a[i]=a[j];
a[j]=t;}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询