c语言编程遇到的问题

{inti,isum=0;for(i++;;i=1){if(i>10)break;isum=isum+i;}printf("\n1+2+3+...+10=%d",isum... { int i,isum=0;
for(i++;;i=1)
{
if (i>10)
break;
isum=isum+i;
}
printf("\n 1+2+3+...+10=%d",isum);
}
Q1:最后运算结果为0,为什么不是1?
Q2:for(i=1; ;i++) 【原题】中为什么用2个;?
展开
 我来答
甲竹曼p
2009-07-17
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
A1:
这是什么东东啊!
第2行:for(i++;;i=1)
根本没给i赋值,怎么就++?不错才怪!
应该是for(i=1;i<=10;i++,isum+=i);
循环体统统不要!
1+2+3+...+10当然不会等于1了(更不会等于0)。

A2:
for语句的格式:
for(表达式1;表达式2;表达式3) 语句;
它的执行过程如下:
(1) 先求解表达式1。
(2) 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3步;若其值为假(0),则结束循环,转到第5步。
3) 求解表达式3。
4) 转回上面第2步继续执行。
5) 循环结束,执行for语句下面的一个语句。

另外,你的程序很乱,我琢磨了好半天,最后看了下面的printf("\n 1+2+3+...+10=%d",isum);才明白是怎么回事。

完整程序:
sum1to10(){
int isum=0;
for(i=1;i<=10;i++,isum+=i);
printf("\n 1+2+3+...+10=%d,isum);
}
a5202003
2009-07-17 · TA获得超过2250个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:673万
展开全部
我晕,你这段代码写的啥啊,没有人这么写的。
首先说一下for语句的格式
for(变量赋初值;执行循环条件;一般累加变量或者改变条件使循环条件可能为假)
{
执行语句;
}
你看啊,最开始的int i,根本没给i赋值,也就是NULL
你直接用的i++;不报错就不错了,因为i没有值
现在没报错可能是编译器认为NULL可读,但是NULL与任何数进行加运算都等于NULL。
再看循环条件,没写,没写就是NULL,也就是if(NULL)永远不会为真,所以值就是假。也就是永远不会执行循环,所以isum值为初始值0.

Q2说明还是你的语法问题,for语句括号里必须两个;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
main_inf
2009-07-17 · TA获得超过1575个赞
知道小有建树答主
回答量:811
采纳率:100%
帮助的人:573万
展开全部
for(i++;;i=1)
{
if (i>10)
break;
isum=isum+i;
}

你这个就是死循环,还想有结果?
因为i永远不可以>10,进入循环只是在1,2之间变化
两个分号的是for循环必须的,第二个式子是条件,只是这里没有条件罢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
worker43433
2009-07-17 · 超过34用户采纳过TA的回答
知道答主
回答量:224
采纳率:0%
帮助的人:0
展开全部
int i,isum=0;
for(i=1;;i+=1) i=1/*i=1以后都为1写错了吧不然死循环应该i=i+1那i=2指到加到i=11 if循环时跳出for循环*/
{
if (i>10)/*小10不执行if*/
break;
isum=isum+i;/* isum=0+1*/ /*isum=0+1+2+...+10
}
printf("\n 1+2+3+...+10=%d",isum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱吃草的lang
2009-07-17 · 超过17用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:68.7万
展开全部
首先i得赋初始值,即i=0;
for(表达式1;表达式2;表达式3) 语句
分号;不能少,因为是3个语句;
表达式1可以写在for语句外面
表达式2,是个运行这个循环的条件
表达式3就是循环一次都做的事
程序如下:
{
int i=0,isum=0;
for(;i<=10;i++)
isum+=i;
printf(("\n 1+2+3+...+10= %d",isum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微机产品设计
2009-07-17 · TA获得超过508个赞
知道答主
回答量:35
采纳率:0%
帮助的人:35.9万
展开全部
你真是要好好看看课本了。
for(表达式1;表达式2;表达式3) 语句
它的执行过程如下:
1) 先求解表达式1。
2) 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(0),则结束循环,转到第5)步。
3) 求解表达式3。
4) 转回上面第2)步继续执行。
5) 循环结束,执行for语句下面的一个语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式