gpt4 book ai didi

c - 尝试交换用户输入数组中的多个值

转载 作者:行者123 更新时间:2023-11-30 17:03:07 27 4
gpt4 key购买 nike

我试图获取用户输入的数组,并将第 0 个值与第 7 个值交换,第 8 个值与第 3 个值交换,第 0 个值与第 14 个值交换。我必须使用一个函数来交换,我认为这是我搞砸的地方。当我编译时,它说函数交换的参数很少。另外,这是我第一次使用指针,所以如果出现错误我不会感到惊讶。这就是我所拥有的,谢谢!

#include <stdio.h>

void swap (int a[15], int *p, int *q, int *r ,int *s , int*t) {

int temp;
p = &a[0];
q = &a[7];
r = &a[8];
s = &a[3];
t = &a[14];

temp = *p;
*p = *q;
*q = temp;

temp = *r;
*r = *s;
*s = temp;

temp = *t;
*t = *p;
*p = temp;
}

int main (int argc, char *argv[]) {

int a[15], i;
printf(" Enter 15 integers: ");
for (i=0; i <15; i++)
swap(a);
printf(" Swapped array:\n %d", a[15]);
return 0;
}

最佳答案

这不是与指针相关的错误。

您使用一个参数调用了 swap(),例如 swap(a);

在定义它时,你有多个参数。喜欢

void swap (int a[15], int *p, int *q, int *r ,int *s , int*t)  {
...
<小时/>

您不需要在函数定义中使用这些额外的参数。

只需将其更改为,

void swap (int a[15])  {

int temp;
int* p = &a[0];
int* q = &a[7];
int* r = &a[8];
int* s = &a[3];
int* t = &a[14];
...

关于c - 尝试交换用户输入数组中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36268039/

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