请教这个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
求教详细解题过程,谢谢! 展开
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
求教详细解题过程,谢谢! 展开
展开全部
for (i=0,j=n-1; i<j; i++,j--)
{ t=a[i]; a[i]=a[j]; a[j]=t; }
这个语句是将x[]中的数据首尾对换……
{ t=a[i]; a[i]=a[j]; a[j]=t; }
这个语句是将x[]中的数据首尾对换……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是讲一个数组给反过来了~~这个直接从fun函数入手就行了~~ t=a[i]; a[i]=a[j]; a[j]=t;这个就是代表a[i]和a[j]互换值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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循环结束
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循环结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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");
}
注释我都在上面写了,你看看自己领悟下。
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");
}
注释我都在上面写了,你看看自己领悟下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这就是很简单的数组首尾对换嘛!主要是看懂fun函数,最初 i 指向数组头,j 指向数组尾部,完成一次对换,然后判断条件,当i<j时,i 加1,j 减1,也就是i 开始指向数组第二个,j指向数组倒数第二个,完成第二次的对换,然后在判断再对换,直到不满足条件i<j,也就是说首尾相遇了,全部对换完成,OK啦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询