可能是关于pow()函数的问题?
唉先上代码void d1(double cd){
double turn=0,endtm,tm=time(NULL);
while(1){
srand((unsigned)time(NULL));
double a= pow(10,cd-1)+rand() % pow(10,cd);
}
}
报错: invalid operands of types 'int' and '__gnu_cxx::__promote_2<int, int, double, double>::__type {aka double}' to binary 'operator%'
求解QAQ
本帖最后由 404NOT 于 2018-2-2 18:10 编辑
因为取余号 % 后面一定要是整型!再补充一下,前面也要是整型 或者枚举类型%运算符没有为double类型定义。像“&,^,|,〜,<<,>>”这样的按位运算符也是如此!{:10_297:} 把%后面的东西用int进行强制转换 double a= pow(10,cd-1)+rand() %(int)pow(10,cd);
来一手强制类型转换 404NOT 发表于 2018-2-2 18:08
因为取余号 % 后面一定要是整型!再补充一下,前面也要是整型 或者枚举类型%运算符没有为double类型定 ...
多谢兄台(抱拳)改成【5#】的样式就能编译了 boot 发表于 2018-2-2 18:46
double a= pow(10,cd-1)+rand() %(int)pow(10,cd);
来一手强制类型转换
多谢多谢(抱拳并几乎不可见地点了一下头)
页:
[1]