/*
*Copyright(c) 2016,烟台大学计算机工程学院
*All rights reserved.
*文件名称:SecondWeek_Test_16.cpp
*作 者:田志伟
*完成日期:2016年 3 月 24 日
*版 本 号:v1.0
*
*问题描述:
*输入描述:
*程序输出:
*/
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void arrangement(int *,int *);
//为了防止减法和除法出现第一个数大第二个数小而做的函数
int main()
{
int i,score=0,result,num1,num2;
cout<<"以下将出现十个随机数的随机加减乘除运算,每题一分"<<endl;
for(i=1;i<=10;i++)
{
cout<<"第"<<i<<"题:"<<endl;
int RanNum;
srand(time(0));
RanNum=rand()%4; //用RanNum随机数来控制加减乘除
num1=rand()0;
num2=rand()0;
switch(RanNum)
{
case 0:
cout<<num1<<"+"<<num2<<"=?"<<endl;
break;
case 1:
arrangement(&num1,&num2);
cout<<num1<<"-"<<num2<<"=?"<<endl;
break;
case 2:
cout<<num1<<"*"<<num2<<"=?"<<endl;
break;
case 3:
arrangement(&num1,&num2);
if(num2==0) //为了防止除数=0而使程序崩溃
{
i--; //i--是为了防止跳出程序后少出一道题
break;
}
cout<<num1<<"÷"<<num2<<"=?"<<endl;
break;
}
cin>>result;
switch(RanNum)
{
case 0:
if(num1+num2==result)
score++;
break;
case 1:
if(num1-num2==result)
score++;
break;
case 2:
if(num1*num2==result)
score++;
break;
case 3:
if(num1/num2==result)
score++;
break;
}
}
cout<<"你的分数是"<<score<<endl;
return 0;
}
void arrangement(int *pNum1,int *pNum2)
{
int temp;
if(*pNum1<*pNum2)
{
temp=*pNum1;
*pNum1=*pNum2;
*pNum2=temp;
}
}
程序运行: