编译错误 error: expected ';' before '{' token|
int* plusOne(int* digits, int digitsSize, int* returnSize){ // 加一 算法;int i=digitsSize-1; //当为一的时候;
int *p;
while(1)
{
if(*(digits+i)==9)
{
*(digits+i)=0;
}
c.|29|// else ( *(digits+i)!=9 || i==0)
{
*(digits+i)+=1;
break;
}
i--;
}
printf("i=%d\n",i);
p=digits;
if(0<=i) //第一种没加到最前一位;
{
*returnSize=digitsSize;//返回相同的数;
return p;
}
else//加到最前一位;
{
*returnSize = digitsSize + 1; // 首位为0说明最高位进位,长度+1
int *res = (int *)malloc(*returnSize * sizeof(int));
res[0] = 1; // 假设最高位为1
memcpy(res + 1, digits, digitsSize * sizeof(int)); // 复制digits到res的后 digitsSize位中
return res;
}
}
.c|29|error: expected ';' before '{' token|
使用codeblocks 2017 版
将 while 中的else 加 分号不报错;
或使用else if 不报错;
希望解释一下?
回答:
else (*(digits+i)!=9 || i==0);
换个写法
else (*(digits+i)!=9 || i==0);
再换一个
else { (*(digits+i)!=9 || i==0);
}
(*(digits+i)!=9 || i==0);
是一个合法的语句,作为 else
的部分自然是没有问题。
以上是 编译错误 error: expected ';' before '{' token| 的全部内容, 来源链接: utcz.com/p/195136.html