| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:请教一个小问题!
只看楼主 加入收藏
skydun
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-6-25
收藏
 问题点数:0 回复次数:8 
请教一个小问题!

S=20+21+22+23+......+2n,直到S<=100.

帮我看一下,我那里编错了,谢谢!

#include <math.h>
#include <stdio.h>
int main(void)
{
int x = 2, y = 0,s=0;
return 0;
while(s<=100)
{
s=s+pow(x,y);
++y;
}
printf("%d", s);
}

搜索更多相关主题的帖子: include return 
2007-09-14 11:41
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
#include <math.h>
#include <stdio.h>
int main(void)
{
int x = 2, y = 0,s=0;
return 0; -----------------------------------直接返回了```程序结束```
while(s<=100)
{
s=s+pow(x,y);
++y;
}
printf("%d", s);
return 0; ---------------------------------其实应该放在这里```
}


顺便问一下````你的指数是什么输出来的```我想那样写都不回``



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-14 11:48
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
从return 0;程序就运行结束了,怎么能放在这呢!而且你的程序是s>100后才退出循环!
#include <math.h>
#include <stdio.h>
int main(void)
{
int x=2,y=0,s=0;
while(s+pow(x,y)<=100)
{
s=s+pow(x,y);
++y;
}
printf("%d\n",s);
return 0;
}
2007-09-14 11:51
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
LS```LZ的意思```不就是要让S<=100``也就是说S>100就完了吗?```
所以应该没什么吧```


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-14 11:55
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
DEVCPP出现一个警告```

#include <math.h>
#include <stdio.h>
int main(void)
{
int x=2,y=0,s=0;

while(s+pow(x,y)<=100)
{
s=s + (int)pow(x,y); ------------------------这里要强制转换一下类型`
++y;
}

printf("%d\n",s);
getchar();
return 0;
}


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-14 11:57
skydun
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-6-25
收藏
得分:0 
将表达式 S=20+21+22+23+......+2n,直到S<=100
变一下形,,,S=1+2+4+8+16+......,直到s<=100,可以用下面这种方法吗?看看那里错了哟!怎么结果是 127,而正确的是 63 啊????

#include <math.h>
#include <stdio.h>
main()
{
int n=1,m,s=1;
while(s+n<=100)
{
n=2*n;
s=s+n;
}
printf("%d",s);
}

[此贴子已经被作者于2007-9-14 12:26:16编辑过]


www. www. 当我,再爱你的时侯......
2007-09-14 12:10
eblis
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-8-27
收藏
得分:0 

#include <stdio.h>
#include <math.h>

int main(void)
{
int s=0,x=2,y=0;
while (y<=100)
{
s=s+(int) pow(x,y); /*如果这里不转换的话。。会变成负数。。*/
y++;
}
printf ("%d",s);
getch();
}


2007-09-14 12:23
muse
Rank: 1
等 级:新手上路
帖 子:115
专家分:0
注 册:2007-9-13
收藏
得分:0 
整型(int)的数据范围是-32768______32767
而你这么大的数据不是溢出了吗?

2007-09-14 13:15
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
回复:(skydun)将表达式 S=20+21+22+23+.........
改成s+2*n跳出循环,这样结果就是63了,我在三楼已经回答了的!
2007-09-14 13:42
快速回复:请教一个小问题!
数据加载中...
 
   



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

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