【问题标题】:Generating random numbers and continuing actions生成随机数并继续操作
【发布时间】:2014-01-05 03:00:15
【问题描述】:

在我为初学者 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

提前致谢!

【问题讨论】:

  • 要将数字保持在 100 以下,您需要 rand() %100; 而不是 100 % rand();

标签: c++ random


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢!我忘了添加
    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多