c语言程序设计输入两个一维数组a[3],b[4],通过调用同一个函数实现各个数组逆序排序。要求用指针变量做参数

 我来答
瀚漠
2012-06-08 · 专注C语言发开,Linux系统相关
瀚漠
采纳数:309 获赞数:1286

向TA提问 私信TA
展开全部
#include <stdio.h>

void sort(int *p,int n)
{
int i,j,tmp;
int *q;
int *s;

for(i=0; i<(n-1); i++) //排序
{
q = p+1;
s = p;
for(j=0; j<(n-1-i); j++)
{
if(*s > *q)
{
tmp = *s;
*s = *q;
*q = tmp;
}
s++;
q++;
}
}
}

int main()
{
int i;
int a[3],b[4];

printf("input three integer for the first array:\n");

for(i=0; i<3; i++)
scanf("%d",&a[i]);

printf("input four integer for the second array:\n");

for(i=0; i<4; i++)
scanf("%d",&b[i]);

sort(a,3);
sort(b,4);

printf("after sort(the first array):");
for(i=0; i<3; i++)
printf("%d ",a[i]);
printf("\n");

printf("after sort(the second array):");
for(i=0; i<4; i++)
printf("%d ",b[i]);
printf("\n");

return 0;
}

按照题目要求写的,编译无误,调试通过没有问题。。。。
淦海瑶s1
2012-06-07 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:737万
展开全部
字符串用系统自带的函数就可以,strrev(a)就能解决
要是自己编写,也很简单
void fan(int *s,int n) //这里*s是数组的名字,n是个数,类型可以定义不同的,
{ //可以用c++的重载定义多个这样的类型的函数
int *p=s,*q=s+n-1,t;
while(p<q)
{
t=*p;*p=*q;*q=t;
}
}
追问
可以帮我写全一点吗?非常谢谢!
追答
已经很全了,你还想怎么样?
void fan(int *s,int n) //这里*s是数组的名字,n是个数,类型可以定义不同的,
{ //可以用c++的重载定义多个这样的类型的函数
int *p=s,*q=s+n-1,t;
while(p <-q
让这两个指针指向的交换,在移动直到
0 1 2 ........N/2..........N-2 N-1
qp
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
允逸0Fk
2012-06-14 · TA获得超过126个赞
知道答主
回答量:56
采纳率:0%
帮助的人:11.8万
展开全部
看到有犀利哥已经强答了,飘过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式