作者chieh0206 (ming chieh)
看板C_and_CPP
标题[语法] 谁可以帮我找错误??
时间Wed Nov 18 00:12:02 2009
我写了一段程式码
找不到错误
但却一直不过
题目是找perfect number
perfect number就是某一整数等於除了自己之外所有因数的总和
ex:6=1+2+3
28=1+2+4+7+14
而且规定要用主程式呼叫函式
因为星期四就要交了,谢谢您的帮忙!!
#include "stdafx.h"
#include "iostream"
using namespace std;
int perfect_number(void);
int _tmain(int argc, _TCHAR* argv[])
{
int k;
k=perfect_number();
int sum;
int i;
if(k==i)
cout<<i<<"是个perfect number!!"<<endl ;
system("pause");
return 0;
}
int perfect_number()
{
int sum; //sum用来储存因数和
int i=0,j=0;
for(i=1;i<10000;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
sum=sum+j;
}
return sum;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.242.142
1F:→ james732:int i; if (k == i) 你的 i 的值呢? 11/18 00:18
2F:→ chieh0206:我就是卡在这里 11/18 00:20
3F:→ chieh0206:不知道如何回传i,是用return i吗? 11/18 00:21
4F:推 fjf1980:你的逻辑有点错耶,你并没比较,只是把sum加总传回去 11/18 00:25
5F:→ fjf1980:你可以在完美数副程式直接比较,直接印出 不用传回去阿 11/18 00:25
6F:→ james732:我也觉得逻辑有问题 建议原po再想想「你要做的每一步」 11/18 00:25
7F:→ chieh0206:哪里??我还是听不懂...... 11/18 00:26
8F:→ fjf1980:完美数ex, 6的因数有1,2,3 而6=1+2+3 所以条件是i==sum 11/18 00:27
9F:→ chieh0206:可是老师规定要用主程式呼叫 11/18 00:39
10F:→ james732:我会先建议你通通写在main里面并执行正确 再思考如何改 11/18 00:40
11F:→ chieh0206:嗯~~我照你说的试一试!! 11/18 00:41
12F:推 lwecloud:你的问题在不管是不是完美数 第二层回圈做完就RETURN啦 11/18 09:52
13F:→ lwecloud:就像fjf大说的 加行if(i==sum) return sum; 11/18 09:53
14F:→ lwecloud:以上为不负责任发言 11/18 09:53