编写函数将长度为N的一维数组从指定位置m开始的n个数逆置,例如原数组为5,4,6,8,10,12,14,16,9,20,若要求从第4个位置开始的5个数按逆序重新排列,则得到新数组为5,4,6,16,14,12,10,8,9,20。#include<stdio.h> #define N 10 void inputarr (int *p,int n); void outputarr (int *p,int n); void swap(int *a,int *b); void func(int *p,int m,int n); int main() { int i,n,m; int a[N]; //printf("输入数组元素:\n"); inputarr (a,N); //printf("请输入起始位置:"); scanf("%d",&m); //printf("请输入逆序处理的元素个数:"); scanf("%d",&n); func(a,m,n) ; outputarr (a,N); return 0;
时间: 2023-06-25 07:04:14 浏览: 212
cpp代码-(一维数组/动态存储)按指定长度生成动态数组,随机赋值给元素,而后输出原数组与逆置后数组
}void inputarr(int *p,int n) //输入数组
{
int i;
printf("请输入%d个整数:\n",n);
for(i=0;i<n;i++)
{
scanf("%d",p+i);
}
}
void outputarr(int *p,int n) //输出数组
{
int i;
printf("逆序处理后的数组为:\n");
for(i=0;i<n;i++)
{
printf("%d ",*(p+i));
}
}
void swap(int *a,int *b) //交换两个变量的值
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void func(int *p,int m,int n) //逆置数组
{
int i,j;
for(i=m-1,j=m+n-2;i<j;i++,j--)
{
swap(p+i,p+j);
}
}
阅读全文