| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 435 人关注过本帖
标题:请教一下C中的循环
只看楼主 加入收藏
hhbcj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
请教一下C中的循环
这是我设计的源程序
#include<stdio.h>
int main(void)
{
int i,s,n;
printf("请输入指数: \n");
scanf("%d",&n);
i=0,s=1;
while(i<n)
  {
     s=s*2;
     i++;
  }
  printf("s=%d\n",s);
  return 0;
}
是计算指数问题但是当 n输入到31 32时S=0请各位指教下 小弟多谢了
搜索更多相关主题的帖子: void 设计 源程序 
2010-11-06 22:01
jianghong_02
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:143
专家分:476
注 册:2010-10-2
收藏
得分:0 
这个程序是对的,我们用的机算机都是差不多是在64/32位的,这是机算机的位数限制………………所以,只算到31~32
2010-11-06 22:15
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:6 
我在VC6.0上运行不是等于0,而是一个很大的负数.这是因为超过了int型的范围.
收到的鲜花
  • hhbcj2010-11-07 12:25 送鲜花  3朵   附言:我很赞同

经验积累中............
2010-11-06 22:18
浩凡儿
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:101
专家分:394
注 册:2010-10-30
收藏
得分:2 
因为编辑系统只能到2的16次方减1所以到31或32时出了输出的都是内存中随机的
2010-11-06 22:47
粤晨阳
Rank: 1
等 级:新手上路
帖 子:4
专家分:8
注 册:2010-11-6
收藏
得分:4 
很明显就是数据大小超过了int形的大小.这时的结果是不能预料的
收到的鲜花
  • hhbcj2010-11-07 12:25 送鲜花  1朵  
2010-11-06 23:39
xq328220454
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:23
专家分:42
注 册:2008-8-22
收藏
得分:6 
数据的大小超过了int的范围了吧…设置成无符号整型,或者双精度试试?
收到的鲜花
  • hhbcj2010-11-07 12:26 送鲜花  2朵   附言:我很赞同
2010-11-07 00:11
cymtl862327
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2010-11-5
收藏
得分:0 
2^32=??
2010-11-07 00:33
哦,是你啊
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2010-11-7
收藏
得分:2 
超了
2010-11-07 01:07
hhbcj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-27
收藏
得分:0 
看了大家的回答 ,又试了一下,总算明白了一些
2010-11-07 12:28
谁的益达
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2010-10-16
收藏
得分:0 
说的
这个是求 2的 n 次方的程序啊  不粗哦  不过呢这个n 是有限制的 至少限制 的还不能 太大

[ 本帖最后由 谁的益达 于 2010-11-7 12:41 编辑 ]
2010-11-07 12:39
快速回复:请教一下C中的循环
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015603 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved