
采用指针访问方式,从键盘给数组a[n]输入数据,然后对数组值按逆序存放输出
首先,,要知道怎样用指针遍历数组元素
#include
using namespace std;int main()
{
int a[5] = { 1,2,3,4,5 };
int* p = a;
for (int i = 0; i < 5; i++)
{
cout << *p << " ";
p++;
}//输出1 2 3 4 5
return 0;
}
然后,要知道怎么逆序输出数组元素
https://blog.csdn.net/qq_64744030/article/details/123956164?utm_source=app&app_version=5.3.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
#include
using namespace std;int main()
{
int a[5] = { 1,2,3,4,5 };
for (int i = 0; i < 5/2; i++)
{
int t = a[i];
a[i] = a[5 - 1 - i];
a[5 - 1 - i] = t;
}
for (int i = 0; i < 5; i++)
{
cout << a[i] << " ";
}//输出5 4 3 2 1
return 0;
}
#include
using namespace std;
void swap(int* p, int m)
{
int t;
//交换
for (int i = 0; i < m / 2; i++)
{
t = *(p + i);
*(p + i) = *(p + m - 1 - i);
*(p + m - 1 - i) = t;
}
for (int i = 0; i < m; i++)
{
cout << *(p + i) << " ";
}
}
/*swap函数解析:
m是main函数中传入的n的形参,m/2表示一组数据中间那个数据的下标
p是数组a的首地址,同时*p也是a[0]
*(p+1)==a[1]、*(p+2)==a[2]......以此类推
*/
int main()
{
int n;
cin >> n;
int a[999];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int* p = a;
swap(p, n);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)