急求高手帮忙解决问题。。。(C语言编写程序题)急啊!万分谢谢! # include<stdio.h>

# include<stdio.h>void fun (int *s,int n1, int n2){int i ,j, t;i=n1;j =n2;while (i<j){t=*(s+i); *(s+i)=*(s+j);*(s+j)=t ;i++;j--;}}main(){int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;fun (p,0,3);fun(p,4,9);fun (p,0,9);for (i=0;i<10;i++)printf ("%d",*(a+i));}答案是5678901234

#include<stdio.h>

/* 函数作用:
将数组 s 的位置在 n1 至 n2 之间的元素,首尾依次交换。
也就是第 n1 个元素和第 n2 个元素交换,
也就是第 n1+1 个元素和第 n2-1 个元素交换,
也就是第 n1+2 个元素和第 n2-2 个元素交换,
。。。
*/
void fun (int *s,int n1, int n2)
{
int i ,j, t;
i=n1;
j=n2;
while (i<j)
{
t=*(s+i);
*(s+i)=*(s+j);
*(s+j)=t ;
i++;
j--;
}
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
// 将第 0 至第 3 个元素,首尾依次交换
// fun 执行后,a[10] = {4,3,2,1,5,6,7,8,9,0}
fun (p,0,3);
// 将第 4 至第 9 个元素,首尾依次交换
// fun 执行后,a[10] = {4,3,2,1,0,9,8,7,6,5}
fun (p,4,9);
// 将第 0 至第 9 个元素,首尾依次交换
// fun 执行后,a[10] = {5,6,7,8,9,0,1,2,3,4}
fun (p,0,9);
for (i=0;i<10;i++)
printf ("%d",*(a+i));
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-19
函数的功能是交换n1到n2之间的元素值
相似回答