| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 454 人关注过本帖
标题:为什么就得不到正确的结果
只看楼主 加入收藏
Jackzdong
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-6-1
收藏
 问题点数:0 回复次数:4 
为什么就得不到正确的结果

#include <iostream>
#include <cmath>
using namespace std;

int main() //分解质因数
{
int i, j;
cout << "请输入要分解质因数的数字:";
cin >>i;
cout<< i << "= 1";
for(j=2; j<=i; ++j)
{
if(j==i)
cout<< "*" << i << endl;
else if(i%j==0)
{
cout<< "*" <<j;
i = i/j;
}
}

return 0;
}

只要我输入的数包含4和9这两个因数, 就得不到正确的结果, 我自己也分析了一下, 分解4和9时 运行for(j=2; j<=i; ++j)就提前跳出去了, 大家帮我分析一下, 应该怎么改一下,谢谢各位大虾了

搜索更多相关主题的帖子: 得不到 结果 
2007-03-18 22:50
Jackzdong
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-6-1
收藏
得分:0 

还是没有人来解答, 希望明天睁开眼睛能看到答案,晚安

2007-03-18 23:18
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 

#include <iostream>
// #include <cmath>
using namespace std;

int main()
{
int i, j;
cout << "请输入要分解质因数的数字:";
cin >>i;
cout<< i << "= 1";
for(j=2; j<=i; ++j)
{
if(j==i)
cout<< "*" << i << endl;
else
while(i%j==0) //改这个地方就好
{
cout<< "*" <<j;
i = i/j;

}
}

return 0;
}



Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-03-18 23:59
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

楼上的正解啊,也可以这样:
int main() //分解质因数
{
int i, j;
cout << "请输入要分解质因数的数字:";
cin >>i;
cout<< i << "= 1";
for(j=2; j<=i; ++j)
{
if(j==i)
cout<< "*" << i << endl;
else if(i%j==0)
{
cout<< "*" <<j;
i = i/j;
j = 1; //改了这个地方
}
}

return 0;
}



Fight  to win  or  die...
2007-03-19 09:40
Jackzdong
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-6-1
收藏
得分:0 
回复:(yuyunliuhen)#include // #...

谢谢楼上的几位大哥了, 基本上都看懂了

FOR以后的第一个IF好像也可以不要了, I%f==0 包含了i == f

谢谢了

2007-03-19 13:00
快速回复:为什么就得不到正确的结果
数据加载中...
 
   



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

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