编写一个函数inv,将数组a中n个整数按相反顺序存放,用指针变量作为调用该函数时的实参

 我来答
金牛发发发22
2019-05-04
知道答主
回答量:1
采纳率:0%
帮助的人:726
展开全部
#include <stdio.h>
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p,i; //指针变量
p=a; //将数组和a的首地址赋给指针变量啊;p=a[0];
inv(p,10);
printf("交换后的元素:");
for(i=0;i<10;i++)
{
printf("%3d",*(p+i)); //p+i表示的是数组元素中下标为i的地址,*(p+i)表示下标为i的元素
}
}
int inv(int *pa,int n)
{
int m,temp;
int *p,*pi,*pj; //用实参指针变量;
m = (n-1) / 2; //表示数组中中间值
pi = pa; //把指真pa首地址赋给pi
pj = pa+n-1; //指针pj的初值
p = pa + m;
for(pi = pa; pi <= p; pi++, pj--) //实现首尾交换
{
temp = *pi;
*pi = *pj;
*pj = temp;
}
return 0;
}
哪不明白可以问我哦
百度网友746780d
2010-12-21 · TA获得超过140个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:0
展开全部
void fun(int *ptr,int n)
{
int i;
int tmp;
for(i=0;i<(n/2);i++){
tmp = ptr[i];
ptr[i] = ptr[n-i-1];
ptr[n-i-1] = tmp;
}
}
int main()
{
int ary[10] = {0,1,2,3,4,5,6,7,8,9};
int i;
fun(ary,10);
for(i=0;i<10;i++){
printf("%d,"ary[i]);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaolongren25
2010-12-21 · TA获得超过141个赞
知道小有建树答主
回答量:92
采纳率:50%
帮助的人:58.8万
展开全部
void inv(int *a, int n)
{
int tmp;
int i, j = n - 1;
for (i = 0; i < j; i++) {
tmp = *(a+i);
*(a+i) = *(a+j);
*(a+j) = tmp;
j--;
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式