#include<stdio.h>
#include<stdlib.h>
main(){
    int c,nl;
    nl=0;
    while((c=getchar())!=EOF){
        if(c=='\n')
        ++nl;
        printf("%d\n",nl);
    }
}     

解决方案 »

  1.   

    你的定义好像又问题,
    #include <stdio.h> 
    #include <stdlib.h> 
    main(){ 
        int c,nl;  // c为int    nl=0; 
        while((c=getchar())!=EOF){ 
            if(c=='\n') 
            ++nl; 
            printf("%d\n",nl); 
        } 
    }      
      

  2.   

    #include <stdio.h>
    #include <stdlib.h>int main(int argc, char* argv[])
    {
    int c,nl;
    nl=0;
    while((c=getchar())!=EOF){
    if(c=='\n'){
    ++nl;
    printf("%d\n",nl);
    }
    }
    }
      

  3.   

    局部变量nl没有初始化,也就是只有声明,再执行++nl当然就报错了。
      

  4.   

    #include <stdio.h>
    #include <stdlib.h>
    void main()
    {
        int c,nl;
        nl=0;
    while( c != EOF)
    {
    c = getchar();
    if(c == '\n')
    {
    nl++;
    printf("%d\n",nl);
    }
    }
    }    这样做可以得到一个行计数
      

  5.   

    不好意思,9L看错了。
    代码如下:
    #include <stdio.h> 
    #include <stdlib.h> 
    void main()

        int c,nl; 
        nl=0; 
        while((c=getchar())!=EOF)

            if(c=='\n') 
    {
    ++nl; 
    printf("%d\n",nl);
    }
        } 
    }
      

  6.   

    我在linux下 用cc编译没有出现问题.执行结果如下
    [liangyh@localhost ~]$
    [liangyh@localhost ~]$ cat >test.c
    #include <stdio.h>
    #include <stdlib.h>
    main(){
        int c,nl;
        nl=0;
        while((c=getchar())!=EOF){
            if(c=='\n')
            ++nl;
            printf("%d\n",nl);
        }
    }[liangyh@localhost ~]$ cc -o t test.c
    [liangyh@localhost ~]$ ./t
    1234
    0
    0
    0
    0
    1