我试图取一个用户输入的数组并将第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;
}
答案 0 :(得分:0)
它不是与指针有关的错误。
您使用一个参数调用了'Form' => Illuminate\Html\FormFacade::class
'Html' => Illuminate\Html\HtmlFacade::class,
,例如swap()
在定义它时,你有一个以上的参数。像
swap(a);
在函数定义中不需要那些额外的参数。
只需将其更改为,
void swap (int a[15], int *p, int *q, int *r ,int *s , int*t) {
...
答案 1 :(得分:0)
更好的方法是定义一般函数swap()
,并在需要时多次使用适当的必需参数调用它。
void swap(int *p, int *q)
{
int tmp = *p;
*p = *q;
*q = tmp;
}
将上述API称为
swap (&a[0], &a[7])
swap (&a[8], &a[3])
...
..