黑马程序员技术交流社区

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

作者: 墨子    时间: 2014-4-30 14:33
标题: 求一道改错题!
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:37
本帖最后由 兰闻天 于 2014-4-30 14:51 编辑

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 14:43
int main(void)
        {
                unsigned int index = 0;
                while(index < 256)
                {
                        index +=index;
                        index++;
                }
                        printf("index value %d\n",index);
                        return 0;
        }

将char改为int,你定义char=0  0是结束的意思,不可能定义一个结束符吧 。
作者: 兰闻天    时间: 2014-4-30 14:52
2楼回复补充:

char只是一个字节,不可能放超过127的数值,char index = 0;是可以的,但所有计算的时候index的最大值不能超过127
作者: 胡铭    时间: 2014-4-30 15:59
  1. int main(void)
  2.         {
  3.                 Unsigned int index = 0;
  4.                 While(index < 256)
  5.                 {
  6.                         index +=index;
  7.                         index++;
  8.                 }
  9.                         Printf(“index value %d\n”,index);
  10.                         Return 0;
  11.         }
复制代码


char类型最多只能到127,所以改成int类型就行了




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