指针数组逆序存放
从键盘上输入n(n≤20)个整数存入一维数组,用指针变量表示数组元素的方式将其逆序存放,然后输出。注意,实现该算法时不允许再定义数组 #include <stdio.h>int main(void)
{
int d , i , n , * p = d ;
scanf("%d" , & n) ;
for(i = 0 ; i < n ; i ++) scanf("%d" , p + (n - i - 1)) ;
printf("%d" , d) ;
for(i = 1 ; i < n ; i ++) printf(" , %d" , d) ;
}
编译、运行实况
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1
D:\00.Excise\C> 本帖最后由 风过无痕1989 于 2020-12-19 19:47 编辑
下面的程序通过 VS2015 的调试,运行正常
#include <stdio.h>
int main()
{
int arr, i, n, temp, *p;
p = arr;
scanf("%d", &n);
for (i = 0;i < n;i++)
{
scanf("%d", p + i);
}
for (i = 0;i <= n / 2;i++)
{
temp = *(p + i);
*(p + i) = *(p + n - i - 1);
*(p + n - i - 1) = temp;
}
for (i = 0;i < n;i++)
printf("%d ", *(p + i));
printf("\n");
} 程序调试好了 本帖最后由 宇轩宇轩! 于 2020-12-19 23:15 编辑
可以了 谢谢
页:
[1]