自动出题程序(10以内的数字的四则运算)

代码如下:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    int num1,num2,op,result1,result2;    //num1,num2:操作数;op:运算符;result1,result2:结果
    do
    {
    srand(time(NULL));
    num1=rand()*10/(RAND_MAX+1);
    num2=rand()*10/(RAND_MAX+1); //生成运算数
    op=rand()*4/(RAND_MAX+1);    //生成运算符 0-- +,1-- -,2-- *,3-- /

    switch (op)
    {
    case 0:
        cout<<num1<<"+"<<num2<<"=?  ";
        cin>>result1;
        if (num1+num2 == result1)
            cout<<"you are right"<<endl;
        else
            cout<<"you are wrong"<<endl;
        break;
    case 1:
        cout<<num1<<"-"<<num2<<"=?  ";
        cin>>result1;
        if (num1-num2 == result1)
            cout<<"you are right"<<endl;
        else
            cout<<"you are wrong"<<endl;
        break;
    case 2:
        cout<<num1<<"*"<<num2<<"=?  ";
        cin>>result1;
        if (num1*num2 == result1)
            cout<<"you are right"<<endl;
        else
            cout<<"you are wrong"<<endl;
        break;
    case 3:
        cout<<num1<<"/"<<num2<<"=?  ";
        cin>>result1;
        cout<<"余数为=?  ";
        cin>>result2;
        if ((num1/num2 == result1)&&(num1%num2==result2))
            cout<<"you are right"<<endl;
        else
            cout<<"you are wrong"<<endl;
        break;
    }
    }while(1);
    return 0;

}

库cstdlib中含有随机数生成函数。程序的循环内的第一条语句srand(time(NULL))的作用是设置随机数的种子,随机数的生成需要种子,不同的种子可以生成不同1随机数序列。如果用户不设置随机数的种子,系统会指定一个。系统为每个程序、每次执行指定的随机数的种子都是相同的,即在程序中,每次执行出的题目都是相同的。但同时,如果程序员设置的种子是一个固定值,那么程序每次执行的到的随机数序列还是相同的。如果让程序每次执行时选择的种子不一样呢?在一个计算机系统中,时间总是在变。因此把系统时间设为种子是一个很好的想法。time(NULL)就是取当前的系统时间。为了使用时钟,需要包含头文件ctime。                                               ————翁惠玉老师 《C++程序设计思想与方法》 

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值