C++产生随机数四则运算

  产生两位随机整数,随机四则运算符,生成30道运算题。

一、编程思路

  看到要求,首先想到的是怎么运用随机数,因为自己对随机数的不熟练所以还要在查很多东西。在一个for循环内先产生两个30以内的随机数,在产生一个4以内的随机数,让0、1、2、3分别对应不同的运算符,之后输出题目,输入数据,判断正确,输出判断结果。

二、代码

//2015年3月6日,30道四则运算
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;


void main()
{
    int A[30],B[30],i,k,t,T,a[30],b[30],c[30];
    char C;
    srand((unsigned)time(NULL));    
    t=0;T=0;

    for(i = 0;i<30;i++)
    {
//产生随机符号
    k = rand()%4;
    if(k == 0)
        C = '+';
    else if(k == 1)
        C = '-';
    else if(k == 2)
        C = '*';
    else if(k == 3)
        C = '/';
    A[i] = rand()%100;
    B[i] = rand()%100;
//输出题目
    if(C == '+')
    {cout<<A[i]<<"+"<<B[i]<<"=?"<<endl;a[i] = A[i]+B[i];}
    else if(C == '-')
    {cout<<A[i]<<"-"<<B[i]<<"=?"<<endl;a[i] = A[i]-B[i];}
    else if(C == '*')
    {cout<<A[i]<<"*"<<B[i]<<"=?"<<endl;a[i] = A[i]*B[i];}
    else if(C == '/')
    {cout<<A[i]<<"/"<<B[i]<<"=?"<<endl;a[i] = A[i]/B[i];}
    }
//输出结果
    cout<<"结果为:";
    for(i=0;i<30;i++)
    {
        cin>>b[i];
        if(a[i] == b[i])
            t++;
        else
        {
            c[T] = i;
            T++;
        }
    }

    if(t==29)
        cout<<"恭喜你都答对了!"<<endl;
    else
    {
        cout<<"";
        for(i=0;i<T;i++)
            cout<<c[i]+1<<"题错了!"<<endl;
    }
}

三、运行结果

四、遇到的困难

  主要是随机数的应用问题,还有调用函数,后来就合并为一个函数。

 

posted on 2015-03-06 20:10  的小逸  阅读(4448)  评论(0编辑  收藏  举报