读书人

菜鸟,问个初级有关问题

发布时间: 2012-02-24 16:30:39 作者: rapoo

初学者,问个初级问题
#include <iostream>
using namespace std;

void main()
{
int x, i(0);
srand(256);

do
{
x=rand();
if (x> =5&&x <=1000)
{
x=(x/5)*5; //??
cout < <x < < "\t ";
cout < <x/10.0 < < "\t ";
i++;
}
}while(i <100);
}

这是书上的一个例题,是用随机函数rand()产生100个学生成绩,而且要求精确到0.5分;作“问号”那里我看不明白是什么意思,前辈们指点一下吧。

[解决办法]
x/5是取x除以5的商,比如
x=6;
x/5;//这时x==1
x=(x/5)*5;//这时x==5
[解决办法]
x=(x/5)*5; //??

注意 x 为整数的时候,
x/5 得到的结果也是整数,小数部分被丢弃了。

所以它的目的的就是得到小于等于x的最接近x的 5 的整数倍的值
[解决办法]
我认为 x=(x/5)*5;
但是(X/5)*5的答案却不等于X了
因为这与一开始X的值有关系
如果X能够整除5的话那么就是一样的 ,但是如果不是的话,那么X的值就发生了变化
这样正好保证了精确到0.5 因为后面的X/10.0就是得到0.5了

读书人网 >C++

热点推荐