|
发表于 2019-12-17 19:42:18
|
显示全部楼层
本楼为最佳答案
本帖最后由 superbe 于 2019-12-17 19:46 编辑
- #include<stdio.h>
- void reverse(int *x, int n);
- void main() {
- int i, a[10] = { 0,1,2,3,4,5,6,7,8,9 };
- printf("转换顺序前:\n");
- for (i = 0; i<10; i++) {
- printf("%d ", a[i]);
- }
- printf("\n");
- reverse(a, 10);
- printf("转换顺序后:\n");
- for (i = 0; i<10; i++) {
- printf("%d ", a[i]);
- }
- }
- void reverse(int *x, int n) {
- int *p, temp, *i, *j;
- //n = (n - 1) / 2; //n 被修改了, 后面的 j 就不对了
- i = x;
- j = x + n - 1;
- //p = x + n; //这行换成下一行
- p = x + (n - 1) / 2;
- for (; i <= p; i++, j--) {
- temp = *i;
- *i = *j;
- *j = temp;
- }
- }
复制代码 |
|