当前位置: 代码迷 >> C语言 >> 崩溃:运行结果里哪来的256,见鬼;救命!
  详细解决方案

崩溃:运行结果里哪来的256,见鬼;救命!

热度:490   发布时间:2007-12-22 15:26:51.0
崩溃:运行结果里哪来的256,见鬼;救命!
#include "stdio.h"
main()
{
   int i=2;
   while(i<256)
   printf("%d\n",i=square(i));
   }
   square(x)
   int x;
   {
       return(x*x);
}
搜索更多相关的解决方案: 结果  救命  运行  

----------------解决方案--------------------------------------------------------
犯了些小错误哦.

#include "stdio.h"
int square(int x)
{
       return(x*x);
}
main()
{
   int i=2;
   while(i<256)
   {

       printf("%d\n",square(i));
       i++;
   }
}
----------------解决方案--------------------------------------------------------
不知道,你是不是想要这种结果?
----------------解决方案--------------------------------------------------------
你把我的程序改的面目全非啦
理解错误?
是不是运行结果受while(i<256)限制?我问的是运行结果里为什么有256呢!
----------------解决方案--------------------------------------------------------
因为当 i==16的时候 符合条件(i<256)
所以输出了i*i,也就是256啊 (就是说16*16等于256)
----------------解决方案--------------------------------------------------------
printf("%d\n",i=square(i));那执行到这里的时候,仍然是把square(i)的值赋给i,这个时候不执行i<256吗?
----------------解决方案--------------------------------------------------------
i==16执行完printf("%d\n",i=square(i));以后,已经在屏幕上显示了256
然后才执行了while判断,此时 条件为假,结束了while循环体
----------------解决方案--------------------------------------------------------
模模糊糊算理解啦!谢谢7楼
----------------解决方案--------------------------------------------------------
哦,不好意思,没明白你的原意,
呵呵,,,
楼上说的对啊...
----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
   int i=2;
   while(i<256)
   printf("%d\n",i=square(i));
}

你的程序等价于这个
----------------解决方案--------------------------------------------------------
  相关解决方案