我想是因为for (i=1b>=1i++)这一句无效。
前面b=0,循环条件是b>=1,所以不循环的。
另外b=b+0.1*pow(0.9,i-1)这句的0.1后面应该加上f,否则类型不对。
这个是改动过的代码
#include <stdio.h>
#include <math.h>
int main()
{
int i
long double b
b=0
for (i=1b<=1i++)
{
b=b+0.1f*pow(0.9,i-1)
}
printf("%d\n", i)
return 0
}
时间有些晚了,答题有点仓促,不知道能不能行,如果出现问题,希望海涵。
计算机里的取随机数函数是均匀分布的随机数。0.0005的概率,相当于2000个数里取一个。
所以我们可以
在0到1999范围里取随机数,如果取到数值
1000,我们就得1(并响铃),否则得0。
#include
<stdio.h>
#include
<stdlib.h>
#include
<math.h>
#include
<time.h>
void
main()
{
long
int
i,y
double
x,
r,
M
=
2000.0
srand((unsigned)time(NULL))
for
(i=0i<5000i++)
//
取5000个
{
r
=
(
(double)rand()
/
((double)(RAND_MAX)+(double)(1))
)
x
=
(r
*
M)
y
=
(long
int)
x
if
(y
==
1000)
{
printf("1
")printf("\007")
//
如果得1,就响铃!
}
else
printf("0
")
}
}