2 qq 26435647 qq_26435647 于 2016.03.08 15:46 提问

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

#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个回答

caozhy
caozhy   Ds   Rxr 2016.03.08 15:47

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

caozhy
caozhy 回复qq_26435647: double用%lf看看。float才是%f
2 年多之前 回复
qq_26435647
qq_26435647 好像和输入没关系,运行结果是: 请输入表达式 3,+,7 结果是:-92559631349317831000000000000000000000000000000000000000000000.000000
2 年多之前 回复
qq_26435647
qq_26435647   2016.03.08 16:02

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

enpterexpress
enpterexpress   Rxr 2016.03.08 16:23

没有错

tangjingyunshiweifen
tangjingyunshiweifen   2016.03.08 16: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
lx624909677   Ds   Rxr 2016.03.08 18:42

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

John_ToStr
John_ToStr   Rxr 2016.03.10 15:18

图片说明

John_ToStr
John_ToStr   Rxr 2016.03.10 15:21

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
这个程序哪里错了
getch();要写成_getch(); |||程序没有问题scanf("a=%d b=20 这个程序也没错 &c); &b &a &c);更改为scanf("%d%d%d" &b &a c=%d" b=%d c=1回车|||scanf("a=%d b=2 &c);输入数的时候注意下就行了输入:a=3 &b &a c=%d" b=%d c=30这样
这个语法分析器错在哪里?
#includeusing namespace std;#define MAXSIZE 100typedef struct{ char *base; char *top; int size;}sqstack;typedef struct{ char t; int number;}zongheti;zongheti a[8];typedef
ModBus CRC16麻烦看一下
ModBus CRC16麻烦看一下ModBus CRC16麻烦看一下
这个是错在哪里了
org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTeiorg.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.
求大神帮忙看一下哪里错误了
执行的操作是根据学号删除mysql表里的数据 显示错误:java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??='10001'' a
这个程序哪里除了问题
x:y;return(z);} int main(){int max(int x &b);所以你输入的两个数之间必须要一个逗号 麦酷网 www.miccity.net“软件资讯”频道里的“编程开发”栏目里一定有想要的 */void main(){int max(int x c);}|||你这段代码前面没有做函数的前项声明 #includeint max(int x &a %d" i
这个程序到底哪里错了
#includemain(){          int** func(int[][],int[][]);     int b[3][3];     int a[3][3]={1,2,3,1,2,3,1,2,3};     int i,j;          for(i=0;i          for(j=0;j               printf("%4d",a[i][j]);   
看一下这个链接问题!
onClick="document.location.href=''"可以连接到你想连接的页面上,可是我想在连接到list.asp?s_type='one'上,用onClick="document.location.href该怎么写啊
寻找汇编大神帮我看一下这个程序
功能菜单的编制:小写字母向大写字母的转换;大写字母向小写字母的转换;二进制数向十六进制数的转换;十六进制数向二进制数的转换;十六进制数向十进制数的转换。 public info1,info2,bufa,bufb,buf,main,info0,info3 extrn change1:far,change2:far,change3:far,change4:far
编的程序错在哪里?
#include void main() {     char ch1,ch2;     ch1=getchar();     switch(ch1)     {     case ch1>='A'&&ch1     case ch1>='a'&&ch1     default : printf("error");     } }