int x, c;
float y;
printf_s("请输入一个x:");
scanf_s("&d",&x);
if (x>=0)
c = x/10;
else
c = -1;
switch (c)
{
case -1:y = 0;
break;
case 0:y = x;
break;
case 1:y = 10;
break;
case 2:
case 3:y = -0.5*x + 20;
break;
default:y = -2;
break;
}
if (y != -2)
printf_s("y的值是:%d\n", y);
else
printf_s("error!");
很简单的一段代码,但是不知道为什么运行结果一直是错的,不管输入什么数字,c总是等于-1,当局者迷,求指点
wjlx2014 于 2014-03-12 09:55:48发表:
同求
lixiaodong0302 于 2014-03-09 21:47:01发表:
支持
iami 于 2014-03-05 14:19:43发表:
scanf_s 和 printf_s 都不是标准C函数,没用过。不过里面的参数列表应该是相同的,错误有如下几个:
1. scanf_s("&d",&x); 改成 scanf_s("%d",&x);
2. 如果你想要输出小数结果,printf("y的值是:%d\n", y); 应该改成 printf("y的值是:%f\n", y);
chen59326 于 2014-02-27 09:55:53发表:
来看看
绿色圣光 于 2014-02-26 22:11:12发表:
楼主确定c是-1?打印出来看过了么?
另外,编译没有警告么?[code]scanf_s("&d",&x);[/code]不应该是这样么?[code]scanf_s("%d",&x);[/code]