题目代码:
(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;
eles
y=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;
eles
y=-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;
else
y = 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;
else
y = -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
的值。
- 这两个程序是相同的,都是使用