gpt4 book ai didi

c - 数组元素交换函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:06 24 4
gpt4 key购买 nike

我要执行的最后一个任务是交换数组的第一个元素 (array[0] 和数组的最后一个元素 (array[2]) 的值;但是,每当我编译时,我都会收到这三个错误并且似乎无法修复它们:

:4 redefinition of parameter 'array'

:32 incompatible type for argument 1 of 'swap'
:32 incompatible type for argument 2 of 'swap'

这是我的代码:

    #include <stdio.h>

void
swap(double *array[0],double *array[2])
{
int temp = *array[0];
*array[0] = *array[2];
*array[2] = temp;
}
int
main(int argc, char **argv)
{

double array[3] = {0};
double realNumber;
printf("array[0] is %f\n",array[0]);
printf("array[1] is %f\n",array[1]);
printf("array[2] is %f\n",array[2]);
printf("enter the first real number:\n");
scanf("%lf",&realNumber);
array[0] = realNumber;
printf("enter the second real number:\n");
scanf("%lf",&realNumber);
array[1] = realNumber;
printf("enter the third real number:\n");
scanf("%lf",&realNumber);
array[2] = realNumber;
printf("array[0] is %f\n",array[0]);
printf("array[1] is %f\n",array[1]);
printf("array[2] is %f\n",array[2]);

swap(double array[0],double array[2]);

printf("after swapping...\n");
printf("array[0] is %f\n",array[0]);
printf("array[1] is %f\n",array[1]);
printf("array[2] is %f\n",array[2]);
return 0;
}

最佳答案

我强烈怀疑,

void
swap(double *array[0],double *array[2])
{
int temp = *array[0];
*array[0] = *array[2];
*array[2] = temp;
}

应该是

void
swap(double *array, int a, int b)
{
double temp = *array[a]; /* <- it's a double */
*array[a] = *array[b];
*array[b] = temp;
}

并称它为这个

swap(double array[0],double array[2]);

应该是

swap(array,0,2);

最后,如果你愿意,用临时变量传入两个指针并用 swap(array[0], array[2]) 调用它,

void swap(double *a, double *b) 
{
double temp = *a;
*a = *b;
*b = temp;
}

关于c - 数组元素交换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com