| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 420 人关注过本帖
标题:c++ 函数循环
只看楼主 加入收藏
sorebas
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-10-23
结帖率:75%
收藏
已结贴  问题点数:15 回复次数:1 
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 编辑 ]
搜索更多相关主题的帖子: return include 字母 
2011-11-06 20:28
wsw771006
Rank: 2
等 级:论坛游民
帖 子:16
专家分:22
注 册:2007-12-16
收藏
得分:15 
楼主的程序是要实现什么目的?把浮点数赋给整数会自动转换,因此像int a=0.5,实际上输出为a=0
2011-11-06 21:30
快速回复:c++ 函数循环
数据加载中...
 
   



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

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