c++ 函数循环
当我第一次尝试的时候#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,S=0;
int e = 11;
while(1)
{
a=S/2+0.5;
b=(S-S/2+0.5)/3+1/3;
c=((S-S/2+0.5)/3+1/3)/4+1/4;
d=(((S-S/2+0.5)/3+1/3)/4+1/4)/5+1/5;
if((S-a-b-c-d)==11)
{
cout<<S<<endl;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<e<<endl;
break;
}
S=S++;
}
return 0;
}
输出了这样结果
33
16
5
1
0 因为任意的字母也不能为零
11
所以我换了下列加注释的
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,S=0;
int e = 11;
while(1)
{
a=S/2+0.5;
b=(S-S/2+0.5)/3+1/3;
c=((S-S/2+0.5)/3+1/3)/4+1/4;
d=(((S-S/2+0.5)/3+1/3)/4+1/4)/5+1/5;
if((S-a-b-c-d)==11&d!=0) //就是d!=0的部分
{
cout<<S<<endl;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<e<<endl;
break;
}
d=d++; //把 S=S++ 改为 d=d++
}
return 0;
}
但不知为什么算不出结果
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d=0,S; //给d赋值,使d当循环中变化的数
int e = 11;
while(1)
{
a=S/2+0.5;
b=(S-S/2+0.5)/3+1/3;
c=((S-S/2+0.5)/3+1/3)/4+1/4;
d=(((S-S/2+0.5)/3+1/3)/4+1/4)/5+1/5;
if((S-a-b-c-d)==11)
{
cout<<S<<endl;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<e<<endl;
break;
}
d=d++;
}
return 0;
}
但最后还是算不出结果,
怎么改????
对了 最后结果应该为S=59
a=30
b=10
c=5
d=3
e=11
[ 本帖最后由 sorebas 于 2011-11-6 20:33 编辑 ]