qq_26435647
2016-03-08 07:46
采纳率: 50%
浏览 1.5k

麻烦看一下这个程序错在哪里

#include
#include
int main()
{

double x,y,r;
char a;
printf("请输入表达式\n");
scanf("%f,%c,%f",&x,&a,&y);






switch(a)
{
case '+':
    r=x+y;
    break;
case '-':
    r=x-y;
    break;
case '*':
    r=x*y;
    break;
case '/':
    r=x/y;
    break;
}
printf("结果是:%f",r);


Sleep(10000);
return 0;

}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • threenewbee 2016-03-08 07:47

    关键你怎么输入的,需要逗号,比如
    1,+,1

    评论
    解决 无用
    打赏 举报
  • qq_26435647 2016-03-08 08:02

    好像和输入没关系,运行结果是:
    请输入表达式
    3,+,7
    结果是:-92559631349317831000000000000000000000000000000000000000000000.000000

    评论
    解决 无用
    打赏 举报
  • 把分全给哥 2016-03-08 08:23

    没有错

    评论
    解决 无用
    打赏 举报
  • IT_Stack 2016-03-08 08:59
    int x, y, r;
    char a;
    printf("请输入表达式\n");
    scanf_s("%d", &x);
    scanf_s("%c", &a);
    scanf_s("%d", &y);
    
    switch (a)
    {
    case '+':
        r = x + y;
        break;
    case '-':
        r = x - y;
        break;
    case '*':
        r = x*y;
        break;
    case '/':
        r = x / y;
        break;
    }
    
    直接在console平台输入7+2 空格什么都不用写的
    
    评论
    解决 无用
    打赏 举报
  • lx624909677 2016-03-08 10:42

    scanf("%lf,%c,%lf",&x,&a,&y);

    评论
    解决 无用
    打赏 举报
  • John_ToDebug 2016-03-10 07:18

    图片说明

    评论
    解决 无用
    打赏 举报
  • John_ToDebug 2016-03-10 07:21

    double 类型数据 与float类型数据在内存中存储方式是不一样的, 所以你在scanf函数中若不按制定格式控制符lf控制的话,编译器就默认以float类型的
    存储方式输入缓冲区中提取数据了,提出来的数据肯定是不对的。。。但是对于printf函数无所谓,这是库函数实现考虑了整个问题。。。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题