|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
void main()
{
double a,b;
char c;
printf("This is my character:\n");
scanf("%f%f%c",&a,&b,&c);/*这个c与b的位置调换一下就不行了*/
switch(c)
{
case'+':printf("%lf\n",a+b);break;
case'-':printf("%lf\n",a-b);break;
case'*':printf("%lf\n",a*b);break;
case'/':printf("%lf\n",a/b);break;
default:printf("no\n");
}
}
错误
scanf("%lf%c%lf",&a,&c,&b);/*这样子就正确为什么呢*/
额 那么很正常啊
scanf("%lf%c%lf",&a,&c,&b); 表示:
第一用long double方式录入a
第二用char方式录入c
第三用long double方式录入b
scanf("%lf%lf%c",&a,&b,&c); 表示:
第一用long double方式录入a
第二用long double方式录入b
第三用char方式录入c
假如你用%lf%lf%c的顺序输入 那么方式1会用char方式录入第二个浮点数,这就错误了。
假如你用%lf%c%lf的顺序输入 那么方式2会用char方式录入第三个浮点数,这就错误了。
所以 它们不同。
scanf不会帮你排序,它只会按着你的顺序格式化输入流。
|
|