关于指针与数组结合问题
int *p;void f(int arr[],int n)
{
int k,i=9,j=9-i;
p = arr;
for(k=0;j>i;i--)
{
k=*(p+i);
*(p+i)=*(p+j);
*(p+j)=k;
}
}
void main()
{
int array={3,7,9,11,0,6,7,5,4,2};
f(array,10);
printf("%d",*(p+1));
}
不知道我这样写问题在哪,为什么不能实现小甲鱼老师的两两数字对调,有无大神指点一下,多谢
检查出来了一处错误,函数中for(i=0;i<5;i++)
不过还是不行 本帖最后由 4goodworld 于 2021-1-17 21:19 编辑
两两数字对调
这是啥意思?
是让 3,7,9,11,0,6,7,5,4,2
变成 2,4,5,7,6,0,11,9,7,3这样子吗?
void f(int* arr, int n)
{
int k, i = 9, j = 9 - i;
for (; j < i; i--,j++)
{
k =arr;
arr = arr;
arr = k;
}
}
void test24()
{
int array = { 3,7,9,11,0,6,7,5,4,2 };
f(&array, 10);
for (int k = 0; k < 10; k++)
{
printf(" %d",array );
}
}
页:
[1]