初学者,问个初级问题
#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了