当前位置: 代码迷 >> C语言 >> 代码评价
  详细解决方案

代码评价

热度:362   发布时间:2005-02-02 22:06:00.0
代码评价
据谭教师教材95页
main( )
{ int x,y;
   scanf("%d",&x);
    if(x<0) y=-1;
     else if (x==0) y=0;
    else y=1;
  printf("x=%d,y=%d\n",x,y);
}

我改成如下:
main()
{
  int x,y;
  scanf("%d",&x);
  if(x<0)y=-1;
  if(x==0)y=0;
  if(x>0) y=1;
  printf("x=%d,y=%d",x,y);}

请帮我做个代码评价最好能说的详细点儿。
搜索更多相关的解决方案: 代码评价  int  else  main  scanf  

----------------解决方案--------------------------------------------------------

我猜想你之所以这样改,也许是因为你对 if(){} if(){} 和 if(){} else if(){} 到底有什么区别感到疑惑。 恩,我来帮你分析一下if....else的好处。 1.if...else的结构使整个程序能更加被程序员所阅读和理解。 2.if...else和if...if结构比起来能大幅度减少系统开支。怎么解释呢?让我们来看下面两个例子: void main() { int a=1; if(a==1) printf("A"); if(a==1) printf("B");

} 很显然,这个程序会输出AB两个字母,因为程序判断a==1是否成立一共判断了两次。 然而: void main() { int a=1; if(a==1) printf("A"); else if(a==1) printf("B");

} 这样写却只输出了A,为什么?因为计算机在判断if....else结构的时候,只要判断到了一个if分支成立,则其他分支将会被舍弃!!这样,系统就不用再花多余的时间去判断其他的if分支是否成立了,从而达到减少系统开支的目的。 所以,你这样改动这个程序,现在看起来还不会有什么大的问题,但是如果以后你编写大规模的程序的时候,你采用这样的结构,系统开支将会很大。 还有,你这样写存在一个很大的潜在危险,不知道你注意到了没有。 如果if(x<0) y=-1;这条语句不仅仅只有y=-1;这一句,还有x=0;即: main() { int x,y; scanf("%d",&x); if(x<0){y=-1;x=0;} if(x==0)y=0; if(x>0) y=1; printf("x=%d,y=%d",x,y);} 如果你输入的是-1,则输出的结果肯定是x=0,y=0 为什么?自己分析看看~


----------------解决方案--------------------------------------------------------
以下是引用神vLinux飘飘在2005-2-2 23:31:59的发言: 还有,你这样写存在一个很大的潜在危险,不知道你注意到了没有。 如果if(x<0) y=-1;这条语句不仅仅只有y=-1;这一句,还有x=0;即: main() { int x,y; scanf("%d",&x); if(x<0){y=-1;x=0;} if(x==0)y=0; if(x>0) y=1; printf("x=%d,y=%d",x,y);} 如果你输入的是-1,则输出的结果肯定是x=0,y=0 为什么?自己分析看看~
你说的这个问题我也还是没有想明白, 还想让老大们讲一下,明明是 -1 ,怎么就变了 0 了啦。 哪如果用 IF……ELSE 就没有这样的结果吗( x=0,y=0)?
----------------解决方案--------------------------------------------------------
是的,如果用了if...else结构后,输入-1结果就不会是x=0,y=0而是x=0,y=-1;
为什么?

为什么x变成0了?很简单,因为if(x&lt;0){y=-1;x=0;}


----------------解决方案--------------------------------------------------------
神vLinux飘飘老师: 谢谢你为我解答,再此祝你新春快乐,身体健康,万事如意
----------------解决方案--------------------------------------------------------
哦,原来我有做老师的潜质~~~
谢谢你的祝福!
----------------解决方案--------------------------------------------------------
  相关解决方案