在C中使用数组(输出中的错误)

时间:2017-08-27 00:27:05

标签: c arrays loops

我有这个任务:

给定以下数组,编写一个反转所有数组元素然后打印它们的程序。 int x [] = {1,2,3,4,5,6,7,8,9,10};

然后我写了那段代码:

int main()    {    
  int x[] = {1,2,3,4,5,6,7,8,9,10};
  int y[10] ;
  int i;
  i=0 ;

  for(i=0 ; i<10 ; i++)   {    
    x[i]=y[9-i] ;
  }

  printf("\r\n The reversed array is : \r\n{ ") ;

  i=0 ;
  for(i=0 ; i<10 ; i++)  {    
    printf("%d \t ,",y[i] ) ;
  }
  printf("}") ;

  return(0) ;
}

输出就是这个

d

代码有什么问题?

1 个答案:

答案 0 :(得分:2)

问题出在这一行:

x[i]=y[9-i] ;

您正在分配给x;但是,x是您的输入数据。 y数组未初始化,因此当您将值分配给x时,您将获得垃圾数据。这就是通常不鼓励使用xy等通用变量名称的原因;很容易将它们混淆并犯这样的错误。

无论如何,如果你改变它,并将x的值分配给y,它应该可以解决你的问题。