请教这个C语言程序,谢谢!

#include<stdio.h>voidfun(inta[],intn){inti,j,t;for(i=0,j=n-1;i<j;i++,j--){t=a[i];a[i]... #include <stdio.h>
void fun(int a[], int n)
{ int i,j,t;
for (i=0,j=n-1; i<j; i++,j--)
{ t=a[i]; a[i]=a[j]; a[j]=t; }
}
int main()
{ int k,x[]={23,67,41,52,38};
fun(x,5);
for (k=0; k<5; k++)
printf("%d ", x[k]);
printf("\n");
}
答案:38 52 41 67 23
求教详细解题过程,谢谢!
展开
 我来答
小七说LoRa
2011-04-21 · TA获得超过461个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:231万
展开全部
这个题目就是,如果数组是n个数组,就将数组的第一个与最后一个交换位置,第二个与倒数第二个交换位置,第三个与倒数第三个交换位置,以此类推。 题中i就表示第i个位置,j表示倒数第i个位置,既n-i
嘿_行
2011-04-21 · TA获得超过158个赞
知道答主
回答量:190
采纳率:0%
帮助的人:152万
展开全部
for (i=0,j=n-1; i<j; i++,j--)
{ t=a[i]; a[i]=a[j]; a[j]=t; }
这个语句是将x[]中的数据首尾对换……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gost0532
2011-04-21 · TA获得超过298个赞
知道小有建树答主
回答量:616
采纳率:0%
帮助的人:256万
展开全部
就是讲一个数组给反过来了~~这个直接从fun函数入手就行了~~ t=a[i]; a[i]=a[j]; a[j]=t;这个就是代表a[i]和a[j]互换值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
炎火炎火炎
2011-04-21
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
fun函数的工作过程:
1、i = 0, j = 4 a[0]与a[4]交换
2、i = 1, j = 3 a[1]与a[3]交换
3、i = 2, j = 2 i = j,for循环结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tiantang07051
2011-04-21 · TA获得超过123个赞
知道答主
回答量:121
采纳率:100%
帮助的人:44.8万
展开全部
#include <stdio.h>
void fun(int a[], int n)
{
int i,j,t;
for (i=0,j=n-1; i<j; i++,j--) //将数组x中的元素对称交换,既在数组x最中间画一条对称 轴,将两边对称的元素互换
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int main()
{ int k,x[]={23,67,41,52,38}; //定义一个数组x并初始化
fun(x,5); //调用函数fun
for (k=0; k<5; k++) //循环输出数组改变后的x中的元素
{
printf("%d ", x[k]);
}
printf("\n");
}
注释我都在上面写了,你看看自己领悟下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a5_xiaodao
2011-04-21 · 贡献了超过199个回答
知道答主
回答量:199
采纳率:0%
帮助的人:47.8万
展开全部
这就是很简单的数组首尾对换嘛!主要是看懂fun函数,最初 i 指向数组头,j 指向数组尾部,完成一次对换,然后判断条件,当i<j时,i 加1,j 减1,也就是i 开始指向数组第二个,j指向数组倒数第二个,完成第二次的对换,然后在判断再对换,直到不满足条件i<j,也就是说首尾相遇了,全部对换完成,OK啦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式