这个c++代码哪里错了,用do,vb do while循环语句的

c++编程求1-1/2+1/3-......1/n,用while和do while做,哪里错了?_百度知道
c++编程求1-1/2+1/3-......1/n,用while和do while做,哪里错了?
#include &iostream&
int main()
float sum,sum1,sum2;
sum1=0,sum2=0,sum=0,a=0;
while(a&=n)
if(a%2!=0)
sum1=sum1+(1.0/n);
sum2=sum2-(1.0/n);}
我有更好的答案
#include &iostream&int main(){
float sum,sum1,sum2;
sum1=0,sum2=0,sum=0,a=1;
//改过!改过!改过!改过!
cin&&n;while(a&=n)
if(a%2!=0)
sum1=sum1+(1.0/a);
//改过!改过!改过!改过!
sum2=sum2-(1.0/a);a++;}
//改过!改过!改过!改过!
sum=sum1+sum2;
system(&pause&);
return 0;}
采纳率:52%
来自团队:
#include &iostream&int main(){
int n,a; sum=0,a=0; cin&&n; while(a++&n) {
if(a%2!=0)
sum=sum+(1.0/a);
sum=sum-(1.0/a); }
cout&& system(&pause&); return 0;}
为您推荐:
其他类似问题
中国旅行社的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
中,有大量的这种 do{}while(0) 的用法,例如这个:
CCImage* pImage = new CCImage();
CC_BREAK_IF(NULL == pImage);
bRet = pImage-&initWithString(text, (int)dimensions.width, (int)dimensions.height, eAlign, fontName, (int)fontSize);
CC_BREAK_IF(!bRet);
bRet = initWithImage(pImage);
CC_SAFE_RELEASE(pImage);
} while (0);
根据语意,这样写至少保证do后面的代码块执行一次。
这样写的意义是什么?为什么不直接使用块,而一定要加上 do while 循环?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
发现这个问题一搜一大堆哦,题主确定不是SF的托么,哈哈,开个玩笑
有时候只是为了代码分块,比仅仅使用{}更直观些。
当你执行一段代码到一半,想跳过剩下的一半的时候,如果你正处于do while循环中,则能用break达到这个目的。
变形的goto,有些公司不让用goto。
这样做也可以是兼容各种编译器。
为了宏展开的时候不会出错。如果直接放在花括号里会出错的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
do while(0) 还有个用的地方是在宏定义#define里
不加大括号的代码
#include &stdio.h&
#define foo(x) int a =int b =
int main()
int i = 0;
if (i == 0)
//无法编译,缺少大括号
加了大括号的代码
#include &stdio.h&
//加上大括号
#define foo(x) {int a =int b =}
int main()
int i = 0;
if (i == 0)
//无法编译,后面多了个;号,得把;去了才能编译的过去,和C的语法不怎么协调
do while(0)的代码
#include &stdio.h&
#define foo(x) do {int a =int b =} while(0)
int main()
int i = 0;
if (i == 0)
//这下舒服了 xD
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
块级作用域。避免 {} 块里面的变量名扩散到上层作用域中。好处是减少外层作用域中需要记忆的名字的数量,减少误用这些变量的可能性。
具体来说,这段代码中 pImage 就被限制在只能在这个块中使用,出了这个块就不能用了,避免程序员误用,也避免名字冲突。
在 C++ / Java 等支持块级作用域的语言中常见。gcc 还支持只写大括号:
int x = 0;
// do something
// can't use x here
int x = 1; // another x
// do something
// can't use x here
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
另外一种作用是这样的使用goto来统一错误处理,如:
bool foo()
ok = bar1(&a);
ok = bar2(&a);
process_error();
如果配合do{}while(0)的话.会这样的
bool foo()
ok = bar1(&a);
ok = bar2(&b);
} while(0);
process_error();
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在宏里常用do-while, 比如
#define SAFE_FREE(p) do {free(p);p=NULL;} while(0)
在代码里调用这个宏:
SAFE_FREE(ptr);
用do-while, 上面的宏调用可以看起来像"函数调用", 句尾可以有分号
因为do{} while(0); 最后可以带分号, 并且利用大括号把语句括起来;
加入不用do-while, 上面的宏就写成:
define SAFE_FREE(p)
free(p);p=NULL;
调用的时候一般人会这么用:
SAFE_FREE(p); // 展开后, p=NULL就不在if控制内了
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。用c++ do-while语句编程,求自然数1-10的和;并用for语句改写此程序。_百度知道
用c++ do-while语句编程,求自然数1-10的和;并用for语句改写此程序。
我有更好的答案
#include〈iostream〉int main(){
int i,sum=0;
}while(i&=10)
cout&&&sum=&&&sum&&return 0;}
采纳率:100%
#include&iostream.h&int main(){ int sum=0,i=1; do
sum=sum+i;
i++; } while (i&11); cout&&&The sum is:&&&sum&& return 0;}/**********************************************************************************************************************************************************************************/#include&iostream.h&int main(){ int sum=0,i; for (i=1;i&11;i++) {
sum+=i; } cout&&&The sum is:&&&sum&& return 0;}
本回答被提问者采纳
#include&iostream&int main(){
int sum=0,n=1; do {
sum=sum+n;
n++; } while (n&=10); cout&&&The sum is:&&&sum&& return 0;}改写:#include&iostream&int main(){ int sum=0; for (int n=1;n&=10;n++) {
sum+=n; } cout&&&The sum is:&&&sum&& return 0;}
其他1条回答
为您推荐:
其他类似问题
自然数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 1891 人关注过本帖
标题:新手求解,for语句嵌套能不能用do while循环?必须用for循环?
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:5&&&
新手求解,for语句嵌套能不能用do while循环?必须用for循环?
编程计算s=1!+2!+....+10!
#include &iostream.h&
void main()
&&& int i,s;
&&& for(i=1;i&=10,i++){
&&&&&&&&do{'i!'=i*i--;
&&& }while(i!=0);}
&&& cout&&s&&
搜索更多相关主题的帖子:
来 自:北京
等 级:贵宾
威 望:94
帖 子:6779
专家分:16751
可是你 'i!' 是什么意思?
等 级:青峰侠
帖 子:388
专家分:1809
供楼主参考
程序代码:#include &iostream&
using namespace
int f(int i);
void main()
&&& int i,s;
&&& s=<font color=#;
&&& for(i=<font color=#;i&=<font color=#;i++){
&&&&&& s+=f(i);
&&& cout&&s&&
int f(int i)
&&& if(i == <font color=#)
&&&&&&&&return <font color=#;
&&&&&&&&return f(i-<font color=#)*i;
我们的目标只有一个:消灭0回复!
等 级:新手上路
回复 3楼 mmmmmmmmmmmm
等 级:论坛游民
专家分:15
这递归用得好啊
等 级:论坛游民
帖 子:21
专家分:16
表示前两天刚做出来。。。。。
版权所有,并保留所有权利。
Powered by , Processed in 0.045288 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved讲解C++的do while循环和循环语句的嵌套使用方法
转载 &更新时间:日 09:52:18 & 投稿:goldensun
这篇文章主要介绍了讲解C++的do while循环和循环语句的嵌套使用方法,是C++入门学习中的基础知识,需要的朋友可以参考下
用do-while语句构成循环
do-while语句的特点是先执行循环体,然后判断循环条件是否成立。其一般形式为:
while (表达式);
它是这样执行的:先执行一次指定的语句(即循环体),然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。可以用下图表示其流程。
【例】用do-while语句求1+2+3+…+100。
#include &iostream&
int main( )
int i=1,sum=0;
sum=sum+i;
while (i&=100);
cout&&"sum="&&sum&&
可以看到:对同一个问题可以用while语句处理,也可以用do while语句处理。do while语句结构可以转换成while结构。
C++几种循环的比较:
1) for和while以及do while这3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。
2) while和do-while循环,是在while后面指定循环条件的,在循环体中应包含使循环趋于结束的语句(如i++,或i=i+1等)。
for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。
3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。
循环的嵌套
一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。
3种循环(while循环&#63;do while循环和for循环)可以互相嵌套。例如,下面几种都是合法的形式:
{…} while( );
}while( );
{…}while( );
}while( );
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 vba do while循环语句 的文章

 

随机推荐