在主函数中输入20个整数到一维数组中,用数组做实参调用函数 invertlint*p,int m,int n),对从指定位置m开始的n个数按逆序重新排列,然后在主函数中输出新的数列
2条回答 默认 最新
CSDN专家-link 2022-12-09 14:04关注首尾交换就行了。但这个m是从0开始的位置,还是从1开始的位置呢?假设是从1开始:
#include <stdio.h> void invert(int *p,int m,int n) { int a = m-1; int b = n+m-2; while(a<b) { int t = p[a]; p[a] = p[b]; p[b] = t; a++; b--; } } int main() { int a[20],i,m,n; for(i=0;i<20;i++) scanf("%d",&a[i]); scanf("%d%d",&m,&n); invert(a,m,n); for(i=0;i<20;i++) printf("%d ",a[i]); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录