main(){
float a,b;
char c;
//对的 scanf(”%f%c%f,&a,&b,&c); 1+2
//错的 scanf(“%f%f%c”,&a,&b,&c); 12+
switch(c){
case ‘+’: printf(“%f\n”,a+b);break;
case ‘-’: printf(“%f\n”,a-b);break;
case ‘*’: printf(“%f\n”,a*b);break;
case ‘/’: printf(“%f\n”,a/b);break;
default: printf(“input error\n”);
}
getch();
}
为什么scanf(”%f%c%f,&a,&b,&c);这样可以
而scanf(“%f%f%c”,&a,&b,&c);不可以
怎么样才可以12+得到3?在这代码里改下…我想更了解些..谢谢了
>> 本文固定链接: http://www.vcgood.com/archives/2999
>> 转载请注明: lzq362215976 2009年01月07日 于 C语言帝国 发表
因为你在输入的时候,如果是1+2,两个数字就自然而然地分开了,当然就对了.
如果你写12+,系统会认为你想输入的第一个数是12,而第二个数是+,这显然不对.
还有,不要用中文的 (,要用英文下的 (
main()
{
int a,b,d;
char c;
printf(“input +-*/”);
scanf(“%s”,&c);
printf(“input two number\n”);
scanf(“%d%d”,&a,&b);
switch(c)
{
case ‘+’:
d=a+b;
break;
case ‘-’:
d=a-b;
break;
case ‘*’:
d=a*b;
break;
case ‘/’:
d=a/b;
break;
default :
printf(“error”);
}
printf(“%d\n”,d);
}
我也尝试一下写了一个!!