标题:新人求助 呜呜~~~~(>_<)~~~~
只看楼主
chenlily0704
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-2-9
结帖率:50%
已结贴  问题点数:20 回复次数:7 
新人求助 呜呜~~~~(>_<)~~~~
求助
可以运行 但是输入数字后没反应
题目是要算从1到N 的奇数和
2015-02-09 04:53
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:7 
很明显的算法错误哦。我不大会写c代码,但分析你的while循环条件,可以得知你的代码会出现两种情况:
1,N输入的数小于或等于0,不循环,printf输出为0
2,N输入的数大于0,必定死循环,永远执行不到printf语句,无任何输出。
我觉得用下面的代码可行(临时啃了两下c语法,如有错误,表笑我
while(N>0)
{
if(N%2==1)sum=sum+1;
N=N-1;
}
2015-02-09 08:09
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:7 
2楼正解。首先题目是算1到N的,这个N是个界限,假设你输入N是57,那么就是算1到57的奇数和。而楼主你输入57之后,明显是算57到正无穷的奇数和了,成为死循环。所以按照2楼改也可以,要不就是定义个新变量int i;for(i=0;i<=N;i++);if(N%2==1)sum+=1

请给你男神一个爱你的理由。
2015-02-09 09:25
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 
哟西,那个for后面没有分号噢,手颤了TAT

请给你男神一个爱你的理由。
2015-02-09 09:26
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 

原谅我。><
最后是if(N%2==1)sum+=i;(不是我上面打的那个1)

请给你男神一个爱你的理由。
2015-02-09 09:34
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:7 
while(N>0&&(N%2==1))改成这句

一片落叶掉进了回忆的流年。
2015-02-09 10:40
chenlily0704
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-2-9
得分:0 
回复 2楼 xzlxzlxzl
感谢指导,新手上路,好人一生平安哦
2015-02-09 12:15
chenlily0704
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-2-9
得分:0 
回复 3楼 邵蜜柚
懂啦懂啦。。感谢亲
2015-02-09 12:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-441903-1-1.html




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

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