首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

循环的有关问题

2012-03-31 
循环的问题大家请看:/***第五章5.10.3***/#includestdio.h#includestdlib.hint main(void){int i 1

循环的问题
大家请看:/***第五章5.10.3***/
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int i = 1;
  int n;
  printf("What out! Here come a bunch of fractions!\n");
  while(i++<5)
  {
  n = i + 2;
  printf("%f\n",n);
  }
  printf("That's all,folks!\n");
  system("pause");
  return;
  } 

运行:What out! Here come a bunch of fractions!
  0.00000
  0.00000
  0.00000
  0.00000
  0.00000
  That's all,folks!
肿么回事啊,救救

[解决办法]

C/C++ code
  while(i++<5)  {  n = i + 2;  printf("%d\n",n);//改下这儿  }
[解决办法]
或者改成 
C/C++ code
printf("%f\n",(float)n);
[解决办法]
原因是:%f默认输出8字节double型 %d默认输出4字节 int型 如果一个整形用%f输出 则前面补4字节0 。而double中 第一位是符号位 后面11位是指数位 最后52位才是数据位 前面的数据位和符号位全部都是0,后面四个字节不管是什么 结果都是0 详情请查看double类型的存储结构
[解决办法]
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

热点排行