2011-04-12 回答
#include
#include
#include
unsigned flip()
{
return rand()%2;
}
int main()
{
int i=0;
int j=0,k=0;
srand( (unsigned)time( NULL ) );
for (;i!=100;++i)
flip() ? ++j : ++k;
printf("正面次数: %d , 反面次数: %d\n",j,k);
return 0;
}
追问:
expected init-declarator before "int" ; expected init-declarator before "int" 这两句话是什么意思
追答:
第几行 出问题 ? 你用什么编译器?
改成 这个试试
#include
#include
#include
int flip()
{
return rand()%2;
}
int main()
{
int i=0;
int j=0,k=0;
srand(time( NULL ) );
for (;i!=100;++i)
flip() ? ++j : ++k;
printf("正面次数: %d , 反面次数: %d\n",j,k);
return 0;
}
追问:
不是,我是自己写了一个,出现了问题。dev c
追答:
你把代码 贴出来 看看
追问:
其实,我刚学的,所以不怎么会。
#include
#include
#include
int flip()
int main(void)
{
int i,n,p=0,q=0;
for(i=1;i<=100;i++)
if(flip()/2==0)
p+=1;
else
q+=1;
printf("出现正面的次数是%d,出现反面的次数是%d",p,q);
system("pause");
return 0;
}
int flip()
{
srand(time(NULL));
return rand()%2;
}
追答:
第一:你flip函数声明 漏了分号
int flip()改成int flip();
第二 随机数种子函数只需初始化一次 不应该放在flip函数体内应该放在main函数开头
第三if(flip()/2==0)这句 flip()/2 值永远都为0 flip返回值类型是int类型,又返回值不是0就是1 所以除2取整永远为0 所该句条件表达式永为真
第四你定义的N值程序中为用到,所以会报一个警告.
整理以上错误对你函数修改
#include
#include
#include
int flip();
int main(void)
{
int i,p=0,q=0;
srand(time(NULL));
for(i=1;i<=100;i++)
if(flip()==0)
p+=1;
else
q+=1;
printf("出现正面的次数是%d,出现反面的次数是%d",p,q);
system("pause");
return 0;
}
int flip()
{
return rand()%2;
}