关于 理想数程序的问题 请大家帮忙 比较简单的程序 (50分)

  • 主题发起人 主题发起人 dxssxd
  • 开始时间 开始时间
D

dxssxd

Unregistered / Unconfirmed
GUEST, unregistred user!
这是判断是不是理想数(就是可以整除他的除数之和和它本身相等 例如 28=1+2+4+7+14)
的程序 可是不能完成任务
请 厉害的专家看看 呵呵 哪里出了毛病了 谢谢 各位
代码:
#include <iostream.h>
#include <ctype.h>
void main(void)
{
    int  i_number,i_n,i_s;
    char ch;
    cout << "本程序是检验输入的数字是否是理想数" << endl;

   do
    {
        cout << "请 输 入 要 检 验 的 整 数 " <<endl;
        cin  >> i_number;
        i_n=1;
        i_s=0;
	while ( i_n < i_number)
	{
	  if (i_number%i_n==0)
	     {	i_s=i_n+i_s;
		 i_n++;
	     }
	  else
 
	  continue 
				   
	}
	if    (i_number==i_s)
	 cout << i_number << "是理想数" << endl 
	else
  
	cout << i_number << "不是理想数" << endl 
	cout << " 程序完成~~是否继续 (y/n) ";
	cin  >> ch 
	}
	while ( toupper(ch)=='Y');


	cout << "谢谢你的使用" << endl 
}
 
while ( i_n < i_number)
{
if (i_number%i_n==0)
{ i_s=i_n+i_s;
i_n++;
}
else

continue
}
问题出在这里,当不是他的除数的时候,就if语句没有满足的时候,i-n没有增值,程序处于死循环状态,应该为:
while ( i_n <= i_number/2)
{
if (i_number%i_n==0)
{ i_s=i_n+i_s;
}
i_n++;
}
试试看!继续关注!
 
是否可以,请说话!
 
怎么现在都没有反应,上面说的应该正确。
 
谢谢大家的支持 你们真好 以后有问题还得请教 谢谢
 
你好野兽王子
经过你的提醒 我在else
后加进了 i_n ++;
就可以了 我觉得你的i_number给我很大的启示
谢谢你
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部