编写函数void rev(int a[],int m,int n),其功能是把包含N个整数的数组a中从第m数开始的n个数按逆序重新存放。在主函数中调用输入函数输入N个整数及m、n,调用rev函数进行逆序处理后,调用输出函数输出结果;当m+n>N时,即表示从第m个数开始到最后一个数进行逆序存放。程序提交时N设定为10。
如输入:10 2 30 4 50 6 70 8 90 1
6 8
10 2 30 4 50 1 90 8 70 6
编写函数,其功能是把包含N个整数的数组a中从第m数开始的n个数按逆序重新存放。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qzjhjxj 2022-05-03 21:24关注
供参考:
#include <stdio.h> #define N 10 void rev(int a[],int m,int n) { int i,t; m+n > N ? n = N - m : n = n; for (i = m - 1;i < m + n/2; i++){ {t = a[i];a[i] = a[N - i + m - 2]; a[N - i + m - 2] = t;} } } int main() { int a[N],i,m,n; for (i = 0;i < N; i++) scanf("%d", &a[i]); scanf("%d%d", &m, &n); rev(a,m,n); for (i = 0;i < N; i++) printf("%4d",a[i]); return 0; }
指针的写法:
#include <stdio.h> #define N 10 void rev(int* a,int m,int n) { int i,t; m+n > N ? n = N - m : n = n; for (i = m - 1;i < m + n/2; i++){ {t = *(a + i);*(a + i) = *(a + N - i + m - 2); *(a + N - i + m - 2) = t;} } } int main() { int a[N],i,m,n; for (i = 0;i < N; i++) scanf("%d", &a[i]); scanf("%d%d", &m, &n); rev(a,m,n); for (i = 0;i < N; i++) printf("%4d",a[i]); return 0; }
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥50 决策面并仿真,要求有仿真结果图
- ¥15 springboot接入微信支付SDK
- ¥50 大区域的遥感影像匹配 怎么做啊
- ¥15 求解答:pytorch跑yolov8神经网络受挫
- ¥20 Js代码报错问题不知道怎么解决
- ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
- ¥20 halcon 图像拼接
- ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
- ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
- ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?