求高手解决C语言的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:38:12
分段函数程序:如下
#include "stdio.h"
void 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\n",x,y);
}
请问这样编程序对吗上面这个这是我自己编的,课本上是:
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);
}
课本上是后面这个程序,但是我扁的那个上机运行也能得出正常结果,我的疑问是对解决这样的问题必须用if else嵌套吗(就像课本上的那个)?用第一种行不行呢?对我自己编的那个我也不是很自信,我老是觉得有错。说的有点多了,希望有个高手帮我释疑,谢谢。

执行的效果是一样的,唯一的区别就是他们的时间复杂度不一样,书上的那程序明显比你写的复杂度低,在前一个if判断成立的话,后面的else就可以不做了
可以去翻翻书

两个程序是一样的。
课本上的程序最后一个else是前两个if不满足才执行的,就是x>0

结果是一样,
不过从优化的角度讲你的程序比课本的快。
应当说比课本的要好
另外,就是应当加上
#include <stdio.h>
从风格来说所有的if都建议加上大括号
下面看不到空格,但是表示应当缩进提高可读性。
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);
}