首页 > 用户发贴区 > 编程问题提问区 > ====一个非常奇怪的运行结果==========
2008
05-26

====一个非常奇怪的运行结果==========

main()
{
  int x,y;
  printf(“Please enter a int number ……..\n”);
  scanf(“%d”,&x);
  printf(“The number you entered is \n X=%d \n”,x);
  if(-5<x<0)  y=x;    
  if(x=0)     y=x-1;  
  if(0<x<10)  y=x+1;  
  printf(“The result is \n Y=%d\n”,y);
 
  }
 


====一个非常奇怪的运行结果==========》有 17 条评论

  1. gs88588 说:

    y总是==1

    ???????????????????????????????

    我看不出来程序错误,

    估计是c语言错了。

  2. redmay1986 说:

    main()
    {
    int x,y;
    printf(“Please enter a int number ……..\n”);
    scanf(“%d”,&x);
    if(-5<x<0)
    y=x;   
    if(x==0)
    y=x-1; 
    if(0<x<10)
    y=x+1; 
    printf(“The number you entered is \n X=%d \n”,x);
    printf(“The result is \n Y=%d\n”,y);
    }

    等于应该是‘==’,而 ‘=’是赋值号!~

  3. gs88588 说:

    ok,
    我又忘了==。
    谢谢。

    不过y的结果还是不对。。。。。。。。。。。。。。。。????????????????

    如果输入<=0的数,结果错误!!!!!!!!!!!!1

  4. gs88588 说:

    程序好像总是在执行最后一句条件
    f(0<x<10)
    y=x+1; 

    前面的条件都不执行了????????????

  5. redmay1986 说:

    main()
    {
    int x,y;
    printf(“Please enter a int number ……..\n”);
    scanf(“%d”,&x);
    if(-5<x<0)
    y=x;  
     
    else if(x==0)
    y=x-1; 
    else if(0<x<10)
    y=x+1; 
    printf(“The number you entered is \n X=%d \n”,x);
    printf(“The result is \n Y=%d\n”,y);
    }

    真不好意思,红色部分还不能执行,其它地方应该没有问题了,我也是初学者,也不知道问题出在什么地方,我再看看吧!~

  6. redmay1986 说:

    main()
    {
    int x,y;
    printf(“Please enter a int number ……..\n”);
    scanf(“%d”,&x);
    if(-5<x||x<0)
    y=x;   
    else if(x==0)
    y=x-1; 
    else if(0<x<10)
    y=x+1; 
    printf(“The number you entered is \n X=%d \n”,x);
    printf(“The result is \n Y=%d\n”,y);
    }

    可能是c语言中不能连续大于,或小于

  7. redmay1986 说:

    这样应该没有问题了

  8. gs88588 说:

    还是不对。

    晕ing

  9. redmay1986 说:

    我也不太清楚了,可以是负号的问题吧,你再找个高手帮你看看吧!~我再帮你问问!~

  10. 命运是我家 说:

    你运行放结果上来,我怎么运行正确啊?

  11. gs88588 说:

    输入-2
    Y=1

    就不对了

    只有输入>0的 数才正确。

    晕ing。。。。。。。。。。。。。。。。。

  12. 命运是我家 说:

    #include<stdio.h>
    void main()
    {
      int x,y;
      printf(“Please enter a int number ……..\n”);
      scanf(“%d”,&x);
      printf(“The number you entered is \n X=%d \n”,x);
      if(-5<x&&x<0) 
      {y=x ;  }
      if(x==0)    
      {y=x-1;  }
      if(0<x&&x<10)
      {y=x+1;  }
      printf(“The result is \n Y=%d\n”,y);
     
      }

  13. 命运是我家 说:

    我的怎么运行正确?你贴下来试试。

  14. gs88588 说:

    多了,

    多谢!!!!!!!!

    if后的表达式要用{}扩起来啊。。。。。。。。。。。。

    书上都没有说明。

  15. gs88588 说:

    错了

  16. 冰封的王座 说:

    main()
    {
      int x,y;
      printf(“Please enter a int number ……..\n”);
        scanf(“%d”,&x);
      printf(“The number you entered is \n X=%d \n”,x);
      if(-5<x && x<0) 
        y=x;   
      else if(x==0)
        y=x-1; 
      else if(0<x && x<10)
        y=x+1;
      else
        printf(“The number that you entered is out of array. \nSo the result is wrong!!!\n”);
      printf(“The result is \n Y=%d\n”,y);
    }

    重拾旧梦。

    不完美的地方,当输入的数字不属于上述范围,输出“重新输入”,怎么实现?GOTO?忘完了。。。。

    希望出来个高手,写的完美一些。

    main()
    {
      int x,y;
      printf(“Please enter a int number ……..\n”);
     a:   

     scanf(“%d”,&x);
      printf(“The number you entered is \n X=%d \n”,x);
      if(-5<x && x<0) 
        y=x;   
      else if(x==0)
        y=x-1; 
      else if(0<x && x<10)
        y=x+1;
      else if (-5>x || x==5 || x>10 || x==10)

      {

        printf(“the unmber that you entered is out of array.\n\n\n\nPlease reenter x:”);
        goto a;  

    }

     

    printf(“The result is \n Y=%d\n”,y);
    }

  17. 冰封的王座 说:

    [QUOTE=gs88588]多了,

    多谢!!!!!!!!

    if后的表达式要用{}扩起来啊。。。。。。。。。。。。

    书上都没有说明。

    [/QUOTE]

     

    并不是{}的问题,是判断上的问题,看看逻辑或,与,非部分,而且上述程序有一个问题就是,输入不属于上述所有范围的时候,仍然运行Y=X+1;

留下一个回复