搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请教一下C中的循环
标题:
请教一下C中的循环
只看楼主
hhbcj
等 级:
新手上路
帖 子: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
等 级:
侠之大者
威 望:
1
帖 子:143
专家分:476
注 册:2010-10-2
第
2
楼
得分:0
这个程序是对的,我们用的机算机都是差不多是在64/32位的,这是机算机的位数限制………………所以,只算到31~32
2010-11-06 22:15
五当家
等 级:
火箭侠
威 望:
2
帖 子:1112
专家分:3674
注 册:2010-10-20
第
3
楼
得分:6
我在VC6.0上运行不是等于0,而是一个很大的负数.这是因为超过了int型的范围.
收到的鲜花
hhbcj
于
2010-11-07 12:25
送鲜花
3朵 附言:我很赞同
经验积累中............
2010-11-06 22:18
浩凡儿
等 级:
职业侠客
威 望:
1
帖 子:101
专家分:394
注 册:2010-10-30
第
4
楼
得分:2
因为编辑系统只能到2的16次方减1所以到31或32时出了输出的都是内存中随机的
2010-11-06 22:47
粤晨阳
等 级:
新手上路
帖 子:4
专家分:8
注 册:2010-11-6
第
5
楼
得分:4
很明显就是数据大小超过了int形的大小.这时的结果是不能预料的
收到的鲜花
hhbcj
于
2010-11-07 12:25
送鲜花
1朵
2010-11-06 23:39
xq328220454
来 自:天津
等 级:
论坛游民
帖 子:23
专家分:42
注 册:2008-8-22
第
6
楼
得分:6
数据的大小超过了int的范围了吧…设置成无符号整型,或者双精度试试?
收到的鲜花
hhbcj
于
2010-11-07 12:26
送鲜花
2朵 附言:我很赞同
2010-11-07 00:11
cymtl862327
等 级:
论坛游民
帖 子:16
专家分:27
注 册:2010-11-5
第
7
楼
得分:0
2^32=??
2010-11-07 00:33
哦,是你啊
等 级:
新手上路
帖 子:1
专家分:2
注 册:2010-11-7
第
8
楼
得分:2
超了
2010-11-07 01:07
hhbcj
等 级:
新手上路
帖 子:3
专家分:0
注 册:2010-10-27
第
9
楼
得分:0
看了大家的回答 ,又试了一下,总算明白了一些
2010-11-07 12:28
谁的益达
等 级:
论坛游民
帖 子:37
专家分:15
注 册:2010-10-16
第
10
楼
得分:0
说的
这个是求 2的 n 次方的程序啊 不粗哦 不过呢这个n 是有限制的 至少限制 的还不能 太大
[
本帖最后由 谁的益达 于 2010-11-7 12:41 编辑
]
2010-11-07 12:39
10
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-325200-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.033932 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved