设一组数有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)。 展开
 我来答
老冯文库
推荐于2017-12-16 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部
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");
}
1254212205
2011-05-24 · TA获得超过1386个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:366万
展开全部
来一个通用的,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");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式