posts - 12,  comments - 21,  trackbacks - 0
下午考试遇到一道题,说编写一个程序,输入某地12个月的降水量,计算每个月降水量占全年降水量的比例,
并且要求输出样式如图:

其中,比例值要四舍五入,本来很早就能考完了,但是四舍五入的方法我想了好久才弄出来,悲剧啦.
代码如
#include<iostream>
using namespace std;
#include
<iomanip>

int fun(double s);

int main()
{
     
double a[12];
     
double sum=0;
     
double b[12];
     cout
<<"please input the rainfall of the 12 months:\n";
     
for(int i=0;i<12;i++)
     {
         cin
>>a[i];
         sum
+=a[i];
     }
     
for(int j=0;j<12;j++)
     {
         b[j]
=(a[j]/sum);
     }
     
for(int m=0;m<12;m++)
     {
         cout
<<setw(2)<<m+1<<"<"<<setw(2)<<fun(b[m])<<"%) ";
         
for(int k=0;k<fun(b[m]);k++)
             cout
<<"#";
         cout
<<endl;

     }
     system(
"pause");
}

int fun(double s)//四舍五入函数
{    
    
if (s*100>int(s*100+0.5))
        
return int(s*100);
    
else
        
return int(s*100)+1;

}
调用了一个四舍五入的函数.
...
....
回来同学说可以更简单得解决,恍然大悟呀..直接强制转换了.........
#include<iostream>
using namespace std;
#include
<iomanip>

int main()
{
     
double a[12];
     
double sum=0;
     
int  b[12];
     cout
<<"please input the rainfall of the 12 months:\n";
     
for(int i=0;i<12;i++)
     {
         cin
>>a[i];
         sum
+=a[i];
     }
     
for(int j=0;j<12;j++)
     {
         b[j]
=int((a[j]/sum)*100+0.5);
     }
     
for(int m=0;m<12;m++)
     {
         cout
<<setw(2)<<m+1<<"<"<<setw(2)<<b[m]<<"%) ";
         
for(int k=0;k<b[m];k++)
             cout
<<"#";
         cout
<<endl;

     }
     system(
"pause");
}
...
后来百度了以下,还有其他很多方法,就不一一列举了.

posted on 2011-06-03 17:26 DoubleW 阅读(2544) 评论(2)  编辑 收藏 引用

FeedBack:
# re: 实现四舍五入
2011-06-06 21:46 | 刘畅
四舍五入不需要乘以100就OK吧?
int fun(double a)
{
if(a < (int)a+0.5)
return (int)(a);
else
return (int)(a+0.5);
}  回复  更多评论
  
# re: 实现四舍五入
2011-06-07 13:08 | DoubleW
四舍五入是不需要乘以100的,但是这道题后面要求输出百分之多少,要乘以100的,所以我在函数里面就给他先乘上了...  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(3)

随笔档案(12)

文章档案(2)

最新随笔

搜索

  •  

积分与排名

  • 积分 - 28138
  • 排名 - 660

最新随笔

最新评论

阅读排行榜

评论排行榜