黑马程序员技术交流社区

标题: 求一道改错题! [打印本页]

作者: 墨子    时间: 2014-4-30 14:34
标题: 求一道改错题!
int main(void)
        {
                Unsigned char index = 0;
                While(index < 256)
                {
                        index +=index;
                        index++;
                }
                        Printf(“index value %d\n”,index);
                        Return 0;
        }
请帮忙指出哪里有问题,并且说明下原因
作者: 兰闻天    时间: 2014-4-30 14:43
本帖最后由 兰闻天 于 2014-4-30 14:52 编辑

int main(void)
        {
                Unsigned int index = 0;
                int x = 0;
                While(index < 256)
                {
                        x +=index;//这里应该定义一个新的变量,如果是用index +=index;例如index=1,这里的值就是2;到下面的index++,index的值就变成3,然后在进行循环,不能循环256次。
                        index++;
                }
                        //Printf(“index value %d\n”,index);
                        Printf(“index value %d\n”,x);
                        Return 0;
        }
你的意思应该是这个吧,你发了两遍
作者: 周宇华    时间: 2014-4-30 16:31

  1. int main(void)
  2. {
  3.     unsigned int index = 0; // unsigned char类型的范围是0~255,后面的while循环无法跳出,改成unsigned int解决
  4.     while(index < 256)
  5.     {
  6.         index +=index;
  7.         index++;
  8.     }
  9.     printf("index value %d\n", index);
  10.     return 0;
  11. }
复制代码

作者: jing迪    时间: 2014-4-30 21:33
你有哪个地方不懂呢?????




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2