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

2024-11-18 16:31:32
推荐回答(2个)
回答1:

#include

/* 函数作用:
将数组 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 {
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));
}

回答2:

函数的功能是交换n1到n2之间的元素值