2009
01-07

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?在这代码里改下…我想更了解些..谢谢了


1+2与12+》有 2 条评论

  1. 尹恒科技 说:

    因为你在输入的时候,如果是1+2,两个数字就自然而然地分开了,当然就对了.

    如果你写12+,系统会认为你想输入的第一个数是12,而第二个数是+,这显然不对.

    还有,不要用中文的 (,要用英文下的 (

  2. yixianliu 说:

    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);
    }

    我也尝试一下写了一个!!

留下一个回复