以下是错误,请告诉它有什么问题

时间:2010-08-16 17:13:21

标签: c

#include<stdio.h>
main( )
{ int num[ ] = {24, 34, 12, 44, 56, 17};
 dislpay(&num[0],6); 
}
display ( int *j, int n ) 
{
int i ;
for ( i = 0 ; i <= n - 1 ; i++ )
 { 
  printf ( "\nelement = %d", *j ) ; 
  j++ ; /* increment pointer to point to next element */ 
    }
}

语言是c,windows vista使用visual c ++ 2005 express。

3 个答案:

答案 0 :(得分:2)

正确的代码应该是:

 #include<stdio.h>

 void display(int*, int); //declaration of your function 

 int main( ) //return type of main should be int
 {
      int num[ ] = {24, 34, 12, 44, 56, 17};
      display(&num[0],6);  //Correct the spelling mistake
 }
 void display ( int *j, int n ) //specify a return type
 {
     int i ;
     for ( i = 0 ; i <= n - 1 ; i++ )
     { 
            printf ( "\nelement = %d", j[i] ) ; 

     }
 }

答案 1 :(得分:0)

错字第4行,显示 - &gt;显示?

答案 2 :(得分:0)

除了错字之外,你得到错误的原因是在C中,你不能在声明之前引用变量或函数。因此,您可以通过将显示功能移动到main之前来修复代码,或者像Prasoon那样,在main之上添加一个声明。

从技术上讲,你可以省略返回类型,因为C假定为int(至少ANSI C89会这样做),但这不是一个好主意。最好总是指定返回类型以提高可读性并避免棘手的类型不匹配错误(特别是因为C会进行大量的隐式转换)。