rand()显示常量行为

时间:2014-12-08 00:07:25

标签: c++ c visual-c++

我正在使用rand函数来模拟两个骰子,如果两个骰子的总和是素数,则玩家获胜但是当编译它时它给出一个常数值236,输出总是“玩家赢了236次”,这不应该是如果我使用rand()函数

的情况
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>  
using namespace std;

int isprime(int num)
{
    int ans = 0;
    int i ;
    int root_x = sqrt(num);
    for(i = 2 ; i <=root_x ; i++ )
    {
        int check = num % i;
        if (check == 0 )
        {
            ans = ans+1;                
        }          
    }

    return ans;        
}

int main ()
{
   int counter = 0;
   int sum;
   int p_ans ;
   int j;
   int dice_1;
   int dice_2;
   for(j = 0 ; j< 500 ; j++)
   {
       dice_1 =  rand() % 6 + 1;
       dice_2 = rand() % 6 + 1;
       if (dice_1 == dice_2)
       {
           dice_2 = rand() % 6 + 1;
       }
       sum = dice_1 +dice_2;
       p_ans = isprime(sum);
       if(p_ans == 0)
       {
           counter = counter + 1 ;
       }              
   }

   cout<<"Player wins" <<counter<<"times\n" ;

   return 0;
}

0 个答案:

没有答案