生成随机数和持续动作

时间:2014-01-05 03:00:15

标签: c++ random

在我为初学者C ++课做的一项任务中,我应该编写一个程序来测试用户的数学技能。我有两个问题:

void addition(){

srand (50);

int result=0;
int points=0;
int counter=0;

int nbr1 = 100 % rand();
int nbr2 = 100 % rand();

cout<<nbr1<<" + "<<nbr2<<" = ";
cin>>result;

if(result == nbr1+nbr2){
    cout<<"CORRECT";
    points+=10;
    return;
}

if(result !=nbr1+nbr2){
    counter++;
    cout<<"WRONG. TRY AGAIN";
}

if (counter == 1){
    points+=5;
}


if (counter == 2){
    points+=2;
}


if (counter >= 2){
    points=0;
    cout<<" WRONG!The anwser is "<<nbr1+nbr2<<endl;
    return;
}

(代码中的一个函数)

两个问题:

1)程序生成的数字总是110.有没有办法让数字随机(不总是110 :)而不是100?

2)如何在一个程序后继续提问?现在它在用户输入一个值后立即结束:

110 + 110 = 220
CORRECT Program ended with exit code: 0

提前致谢!

2 个答案:

答案 0 :(得分:0)

你总是在srand使用相同的种子,试试srand(time(NULL));

答案 1 :(得分:0)

每次为了得到不同的数字,你需要给srand一个不同的值,你可以使用时间:

#include <time.h>
srand(time(NULL));