谭浩强的C语言书中的代码

源代码在线查看: 例5.3.txt

软件大小: 89 K
上传用户: rain0413
关键词: 谭浩强 C语言 代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				例5.3有一函数:
				y=-1(x				 0(x=0)
				 1(x>0)
				编一程序,输入一个x值,输出y值。
				可以先写出算法:
				输入x
				若 x < 0y =-1
				若 x = 0y = 0
				若 x > 0y = 1
				输出y
				或:
				输入x
				若   x < 0y = -1 
				否则:
				若 x = 0y = 0
				若 x > 0y = 1
				输出y
				也可以用流程图表示,见图5.7。
				
				有以下几个程序,请读者判断哪个是正确的?
				  程序1:
				    main()
				       {int x,y;
				         scanf("%d",&x);
				         if(x				         else if(x==0) y=0;
				                else y=1;
				         printf("x=%d,y=%d\n",x,y);
				        }
				程序2: 将上面程序的if语句(第4~6行)改为:
				    if (x>=0)
				         if (x>0)y= 1;
				         else           y= 0;
				
				else              y=-1;
				
				  程序3: 将上述if语句改为:
				    y=-1;
				
				        if(x!=0)
				
				          if(x>0) y=1;
				
				        else            y=0;
				
				  程序4:
				    y=0;
				
				        if(x>=0)
				
				         if(x>0) y=1;
				
				        else y=-1;
				只有程序1和程序2是正确的。程序1体现了图5.7的流程,显然它是正确的。程序2的流程图见图5.8。它也能实现题目的要求。程序3的流程图见图5.9。程序4的流程图见图5.10。它们不能实现题目的要求。请注意程序中的else与if的配对关系。例如程序3中的else子句是和它上一行的内嵌的if语句配对,而不与笫2行的if语句配对。为了使逻辑关系清晰,避免出错,一般把内嵌的if语句放在外层的else子句中(如程序1那样),这样由于有外层的else相隔,内嵌的else不会被误认为和外层的if配对,而只能与内嵌的if配对,这样就不会搞混,如像程序3和程序4那样写就很容易出错。
				出错。			

相关资源