void main()
{
int x,state
double y
printf("请输入一个整数x:")
scanf("%d",&x)
if(x>=0)
state = 1
else
state = 2
switch(state)
{
case 1:
{
y = x+3
break
}
case 2:
{
y = (double)x/2
break
}
}
printf("y=%.6lf\n",y)
}
if(year <2015 &&year >2015){改成:
if(year <2015 || year >2015){
或
if(year != 2015 ){
后面的else中 year==2015都是多余的,可以删除掉
逻辑有点不清。不过不能去掉else if的,看执行顺序就知道了。当满足if (c==' '|| c=='\n'||c=='\t')条件的时候,程序就会跳过else if,执行++nw而当不满足if (c==' '|| c=='\n'||c=='\t')的时候,程序会继续试探是否满足else if(state==OUT)条件,如果满足则执行state=IN如果不满足,则继续向下执行++nw
如果你把else if去掉了,由于state=OUT此处有个分号,意味着“选择结构”至此结束。不论是否满足if的条件,程序都会执行state=IN因为state=IN并不包含在选择结构if中。
所以不能去掉else if。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)