到底哪错了?

来源:百度知道 编辑:UC知道 时间:2024/04/30 05:15:11
我要求:
X的平方+2X+5 (0<X<10)
y= X+17 (X>=10)
X+100 (X<=0)
结果:
main()
{
int x,y;
scanf("%d",x);
if(x>0 && x<10) y=x*x+2x+5;
if(x>=10) y=x+17;
if(x<=0) y=x+100;
printf("%d",y);
}
为什么后两个试子得数都对,第一个却不对??
我用的是C.

第一:y=x*x+2x+5,应该改为y=x*x+2*x+5,有可能这是笔误,要不然程序不会通过。
第二,scanf("%d",x);应该为 scanf("%d",&x); (少了&符号)。但是三个式子的结果应该都是错误的,为什么楼主说“后两个试子得数都对,第一个却不对”?
第三,程序不够精简,风格也不好:
main()
{
int x,y;
scanf("%d",&x);
if(x<=0)
y=x+100;
else if(x>=10)
y=x+17;
else
y=x*x+2*x+5;
printf("%d",y);
}

不应该会出现这样的问题.你这样在试一试,一定可以的.
main()
{
int x,y;
scanf("%d",x);
if(x<=0) y=x+100;
if(x>0 && x<10) y=x*x+2x+5;
if(x>=10) y=x+17;

printf("%d",y);

可能是系统判断条件表达式时不同的系统遵守的规则不同吧.

有2x这种写法吗?

#include <stdio.h>

int main()
{
int x=0,y=0;

x=(int)getchar();

if (0<x && x<10) y=x*x+2*x+5;
if (x>=10) y=x+17;
if (x<=0) y=x+100;

printf("%d",y);

return 0;
}

是不是你输入