题目代码:
(1)
#include<stdio.h>int main(){int x,y;printf(“enter x:”);scanf(“%d”,&x);y=-1;if(x!=0)if(x>0)y=1;elesy=0;printf(“x=%d,y=%d\n”,x,y);return 0;}
(2)
#include<stdio.h>int main(){int x,y;printf(“enter x:”);scanf(“%d”,&x);y=0;if(x>=0)if(x>0)y=1;elesy=-1;printf(“x=%d,y=%d\n”,x,y);return 0;}
解析:
(1)
#include <stdio.h>int main() {int x, y;printf("enter x:");scanf("%d", &x);y = -1;if (x != 0)if (x > 0)y = 1;elsey = 0; // 注意:这个else是和第二个if匹配printf("x=%d, y=%d\n", x, y);return 0;
}
分析:程序的逻辑有误。如果 x<0,y 仍然为 -1,但应该为0。
(2)
#include <stdio.h>int main() {int x, y;printf("enter x:");scanf("%d", &x);y = 0;if (x >= 0)if (x > 0)y = 1;elsey = -1; // 注意:这个else是和第二个if匹配printf("x=%d, y=%d\n", x, y);return 0;
}
分析:程序的逻辑也有误。如果 x<0,y 仍然为 0,但应该为 -1。
正确示例
对于给定函数的要求:
- 当
x < 0时,y = -1 - 当
x == 0时,y = 0 - 当
x > 0时,y = 1
(1)
#include <stdio.h>int main() {int x, y;printf("enter x: ");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);return 0;
}
(2)
#include <stdio.h>int main() {int x, y;printf("enter x: ");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);return 0;
}
代码说明:
- 程序(1)和程序(2):
- 这两个程序是相同的,都是使用
if-else结构来正确判断x的值,并设置对应的y值。 - 首先提示用户输入一个整数
x。 - 然后根据
x的值,使用if-else结构判断:- 如果
x < 0,则y = -1。 - 如果
x == 0,则y = 0。 - 如果
x > 0,则y = 1。
- 如果
- 最后,输出
x和y的值。
- 这两个程序是相同的,都是使用
