注册 登录
编程论坛 新人交流区

大家看看我的程式哪错了?

suckdog 发布于 2007-10-01 12:07, 485 次点击
要求是输入一个数字, 如果是单数就(数字*3)+1,如果是双数 就(数字/2),重复这个指令直到数字变成1。


#include <iostream>
using namespace std;
main()
{
int number, count=0;

cout<<"Enter a positive integer value:\n";
cin>>number;
do
{
if(number%2=0)
{
number=number/2;
count++;
cout<<"The value is ";
cout<<number;
}
else if (number%2=1)
{
number=number*3+1;
count++;
cout<<"The value is ";
cout<<number;
}
else
{
cout<<"Error.\n";
}
}while(number!=1);

cout<<"Number of steps is ";
cout<<count;

return 0;
}
2 回复
#2
smofbao2007-10-01 18:16

你的这个程序是不是死循环了
如果number为1 的话.那有什么结果呀
重你的算法上看是没有问题的
我想知道这个程序的意义是什么

#3
liangchongch2007-10-01 19:46
循环体的if语句里面的条件都少了个'='号!
我建议
if(number%2==0)之类的写成
if(0==number%2)这样如'=='写成'='就会在编译时报错

1