我遇到了编译器问题。我的代码段在下面,但是当我运行它时,它的编译方式不同,无法检测到 '-'(减号)并将其替换为'?' (问号),使其成为三元运算符。
我的代码 :-
unsigned long long int find(long int N , int K){
if(K == 2){
return 2*(N - 1)*(N - 1);
}
else{
return(find(N − 1 , K) + find(N − 1 , K − 1) + find(N − 2 , K − 1));
}
}
编译器错误:-
prog.c: In function ‘find’:
prog.c:52:27: warning: left-hand operand of comma expression has no effect [-Wunused-value]
return(find(N ? 1 , K) + find(N ? 1 , K ? 1) + find(N ? 2 , K ? 1));
^
prog.c:52:30: error: expected ‘:’ before ‘)’ token
return(find(N ? 1 , K) + find(N ? 1 , K ? 1) + find(N ? 2 , K ? 1));
^
prog.c:52:16: error: too few arguments to function ‘find’
return(find(N ? 1 , K) + find(N ? 1 , K ? 1) + find(N ? 2 , K ? 1));
我尝试使用codechef和geeksforgeeks的C编译器,但仍然会给出编译错误。
请建议该怎么做。
答案 0 :(得分:0)
在某些地方,您的代码实际上包含U+2212 Unicode减号。
通常情况下,编译器不会接受这一点,您应该使用ASCII减号。
我建议使用不允许输入非ASCII字符的文本编辑器,这样可以避免此类问题。