我在下一个代码中有一个奇怪的错误(它正在做多项式除法)。
不确定,但正如我所见,问题在于方法的声明。在代码之后,Iv'e列出了我不断得到的错误。
代码如下:

  1
     2  int[] mul(int d[],int t,int idxq);
     3  int[] sub(int a[],int b[]);
     4  int check(int r[],int lengthr);
     5  int[] cp(int a[]);
     6  int[] div(int n[],int d[]);
     7
     8
     9
    10  int[] mul(int d[],int t,int idxq){
    11  int i;
    12  int size=sizeof(d)/sizeof(d[0]);
    13  int c[size];
    14  for(i=size-1;i>0;i--)
    15  c[idxq+i]=d[i]+t;
    16  return c;
    17  }
    18
    19  int[] sub(int a[],int b[]){
    20
    21  int i;
    22  int j;
    23  int size=sizeof(a)/sizeof(a[0]);
    24  int fin[size];
    25  for(j=0;jsize;j++)
    26  fin[j]=a[j];
    27  for(i=0;isize;i++)
    28  fin[i]=a[i]-b[i];
    29
    30  return fin;
    31  }
    32
    33  int check(int r[],int lengthr){
    34  int i;
    35  for(i=0;i<lengthr;i++){
    36  if(r[i]!=0)
    37  return 1;
    38  }
    39  return 0;
    40  }
    41
    42
    43  int[] cp(int a[]){
    44  int size=sizeof(a)/sizeof(a[0]);
    45  int i;
    46  int fin[size];
    47  for(i=0;i<size;i++)
    48  fin[i]=a[i];
    49
    50  return fin;
    51  }
    52
    53  int[] div(int n[],int d[]){
    54  int idxq=0;
    55  int t=0;
    56  int r[sizeof(n)/sizeof(n[0])]=cp(n);
    57  int lengthr= sizeof(r)sizeof(r[0]);
    58  int lengthd= sizeof(d)sizeof(d[0]);
    59
    60  while(check()!=0 && r[lengthr-1]=d[sizeof(d[0]])
    61  t=r[lengthr-1]d[sizeof(d[0]])-1];
    62  idxq=lengthr-d[sizeof(d[0]])-1]
    63  q[idxq]=t;
    64  r=sub[r,mul(d,t,idxq)];
    65  idxq=0;
    66
    67  }
    68
    69  int main(){
    70
    71  int a[4]={-42,0,12,1};
    72  int b[2]=(-3,1);
    73  div(a,b);
    74  }

以下是错误:
q6.c:2: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c:3: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c:5: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c:6: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c:10: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c:19: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c:43: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c:53: error: expected identifier or  Ç ( Ç  before  Ç [ Ç  token
q6.c: In function  Ç main Ç :
q6.c:72: error: invalid initializer

谢谢你的帮助!:)

最佳答案

一点也不奇怪。
C没有作为一等公民的数组;不能从函数返回它们。
此外,这:

int size=sizeof(d)/sizeof(d[0]);

无效,因为传递给函数的任何数组都将衰减为指向第一个元素的指针,因此sizeof d将为sizeof (int *)。需要将数组长度作为单独的参数传递。

08-29 00:47