Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在URI在线判断中,C语言中没有先前If问题的Else_C_If Statement_Compiler Errors_Conditional Statements_Uri - Fatal编程技术网

在URI在线判断中,C语言中没有先前If问题的Else

在URI在线判断中,C语言中没有先前If问题的Else,c,if-statement,compiler-errors,conditional-statements,uri,C,If Statement,Compiler Errors,Conditional Statements,Uri,我在解决URI 1099问题时遇到了一个错误。它说: main.c: In function ‘main’: main.c:22:17: error: ‘else’ without a previous ‘if’ else{ ^~~~ main.c:36:17: error: ‘else’ without a previous ‘if’ else{ ^~~~

我在解决URI 1099问题时遇到了一个错误。它说:

main.c: In function ‘main’:
main.c:22:17: error: ‘else’ without a previous ‘if’
                 else{
                 ^~~~
main.c:36:17: error: ‘else’ without a previous ‘if’
                 else{
                 ^~~~
代码没有编译。编译器发送了上述错误。我无法解决这个问题。 完整代码写在下面:

#包括
int main()
{
int N,X,Y,i,j,k,sum1=0,sum2=0;
scanf(“%d”和“&N”);

对于(i=0;i您在多个代码段中有一个
if
语句,后跟一个
printf
,后跟一个
else
,这是不允许的。您必须将
printf
放在块后或块中

这是需要更正的代码部分之一,其他代码非常类似

如果(j%2!=0){
sum1=sum1+j;
}
//此printf导致错误
printf(“%d”,sum1);
否则{
printf(“%d”,0);
}
这可能是一个解决方案

如果(j%2!=0){
sum1=sum1+j;
printf(“%d”,sum1);
}否则{
printf(“%d”,0);
}

您不能在else之前编写任何其他命令,因为如果else阻塞,则该命令将结束

    #include <stdio.h>
    int main()
    {
    int N, X, Y, i, j, k, sum1=0, sum2=0;
    scanf("%d", &N);
    
    for(i=0; i<=N; i++){
    scanf("%d %d\n",&X,&Y);
    
        if(X<Y){
            for(j=X+1; j<Y; j++){
                
                if(j%2!=0){
                sum1=sum1+j;
                }
                printf("%d", sum1); //this can't be here
            
                else{
                printf("%d", 0);
                }
            }
        }
        
        else if(X>Y){
            for(k=Y+1; k<X; k++){
                
                if(k%2!=0){
                sum2=sum2+k;
                }
                printf("%d", sum2); //this can't be here
                
                else{
                printf("%d", 0);
                }
            }
        }
        else{
            printf("%d", 0);
        }
    }
    return 0;
    }
或:


取决于您需要什么,但我假设它是第一个。

您不能在if和else条件之间写入任何内容

 if(k%2!=0){
                sum2=sum2+k;
                }
                printf("%d", sum2);  //this will faill.
                
                else{
                printf("%d", 0);
                }

如果您使用一致缩进,那么您的错误是显而易见的。有经验的开发人员总是使用一致的代码格式有很多原因。谢谢大家。我得到了解决方案并成功地解决了问题。请记住投票表决
 if(k%2!=0) { ... }
 else {...}
 printf(...)
 if(k%2!=0){
                sum2=sum2+k;
                }
                printf("%d", sum2);  //this will faill.
                
                else{
                printf("%d", 0);
                }