新手不知道为什么代码出错,但知道它出错的地方

pis*_*ire 1 c

我的代码有问题,好消息是我确实查明了问题,坏消息是我不明白为什么这是一个问题.这应该是返回还是退出?这是我的getNums()函数,...到目前为止.首先我的代码调用getLine()获取行并返回其字符长度.然后给出nums,行,行的长度,以及将数字放入的空数组.并且假设返回它刚刚放入的数字的数量.

int getNums(char s[], int endMarker, int numarray[])
{
    char c;
    double value;
    int counter =0;
    int i,j;
    for(i=0;i<endMarker;i++) {
        while ((c=s[i]!='\n')&&(c!=' ')) {
            //errors
            if ( (c<'0') || (c>'9') ) {
                return(-1); //was exit testing return, **this always kicks me out**
                if( counter > 6){
                    return(-2);
                } //was exit testing return
                s[i]=c;
                i++;
                value = value*10+'c'-'0';
            }else
                numarray[j]=value;
            j++;
            counter++;   
        }
        if ((c=getchar())==' ') {      
            i++;
        }
    }
    return (counter);
    printf("%c,%c:",counter,value); // for testing
}
Run Code Online (Sandbox Code Playgroud)

Din*_*ngo 7

c=s[i]!='\n'没有做你认为它正在做的事情.不等式运算符的优先级高于赋值运算符.c如果s[i]不等于变量,则变量将设置为1,如果变量相等'\n',则变量将设置为0.

您应该将赋值移动到先前的语句,或者在括号周围添加括号.