c语言程序,有10个数,已经按升序排好,它能够把从指定位置m开始的第n个数按逆序重新排列,并输出新
c语言程序,有10个数,已经按升序排好,它能够把从指定位置m开始的第n个数按逆序重新排列,并输出新的完整数列,要求用函数和指针完成...
c语言程序,有10个数,已经按升序排好,它能够把从指定位置m开始的第n个数按逆序重新排列,并输出新的完整数列,要求用函数和指针完成
展开
2个回答
展开全部
#include <stdio.h>
void myfun(int *p,int m,int n){
for(n=m+n-1;m<n;m++,n--)
*(p+m)^=*(p+n),*(p+n)^=*(p+m),*(p+m)^=*(p+n);
}
int main(void){
int a[10]={1,2,3,4,5,6,7,8,9,10},m,n;
printf("Input m & n(int m,n>=0,m+n<=10)...\n");
if(scanf("%d%d",&m,&n)!=2 || m<0 || n<0 || m+n>10){
printf("Input error, exit...\n");
return 0;
}
myfun(a,m,n);
for(m=0;m<10;printf("%d ",a[m++]));
printf("\n");
return 0;
}
展开全部
仅提供函数部分。
整体程序 包括主函数 头文件 测试数据自行补充。
void reverse(int *a, int m, int n)
{
int *p1, *p2, t;
p1 = a+m;
p2 = a+m+n-1;
while(p1<p2)
{
t=*p1;
*p1=*p2;
*p2=t;
p1++;
p2--;
}
}
追问
为什么p1=a+m
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询