=0) c = x/10; else c = -1; switch (c) { case -1:y = 0; break; case 0:y = x; break; case 1:y = 10" />
红联Linux门户
Linux帮助

C程序运行出错,求指点

发布时间:2014-02-26 20:35:33来源:红联作者:jerryzhg
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,当局者迷,求指点
文章评论

共有 5 条评论

  1. wjlx2014 于 2014-03-12 09:55:48发表:

    同求

  2. lixiaodong0302 于 2014-03-09 21:47:01发表:

    支持

  3. 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);

  4. chen59326 于 2014-02-27 09:55:53发表:

    来看看

  5. 绿色圣光 于 2014-02-26 22:11:12发表:

    楼主确定c是-1?打印出来看过了么?
    另外,编译没有警告么?[code]scanf_s("&d",&x);[/code]不应该是这样么?[code]scanf_s("%d",&x);[/code]