码迷,mamicode.com
首页 > 编程语言 > 详细

C语言编写的随机产生四则运算测试题

时间:2015-03-06 16:10:26      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

题目:编写一个四则运算测试题的程序,要求每道题都要随机产生

解题思路:

      1.编写测试题,且为30道,就要用到循环函数,因此想到用for()函数

      2.随机产生两个数,就想到用rand()函数。

         注:1.rand()函数在使用时应有头文件#include<stdlib.h>,我上课时由于没有用此头文件,程序一直无法运行

              2.我在调试程序的过程中,随机数一直不变,通过查资料我了解到,要想让随机数改变,需要提供一个种子,相同的种子会产生相同的随机数,因此必须在rand()函数前                   加上 srand(time(NULL));语句,且头文件中加上#include<time.h>,这样就能保证两个随机数能够该变了。

      3.随机缠上四则运算要想每道题+ ,-,*,/都是随机的,我就想到了用分支函数,通过用if 语句,我感觉有点麻烦,然后我就想到了switch()函数,且通过随机产生0,1,2,3            四个数来进行分支,比较方便一点

       4.考虑到小学生没有学过负数,所以在做减法时,我想到了,要让大数减小数来计算。还有就是除法,除数不能是0,因此我想到了如果除数是0,则重新出一道题,为了                   保证题目为30道题,要让i+1才行。

 

下面是我编写的一个小程序:

#include<iostream.h>
#include<stdlib.h>
#include<time.h>
int main()
{
 int x,y,z,t; 
 srand(time(NULL));
 cout<<"小学二年级四则运算测试题"<<endl;
 for(int i=0;i<30;i++)
 {
  x=rand()%100;
  y=rand()%100;
  z=rand()%4;
  switch(z)
  {
  case 0:
   cout<<x<<"+"<<y<<"="<<endl;
   break;
  case 1:
   if(x<y)
   {
    t=x;
    x=y;
    y=t;
   }
   cout<<x<<"-"<<y<<"="<<endl;
   break;
  case 2:
   cout<<x<<"*"<<y<<"="<<endl;
   break;
  case 3:
   if(y!=0)
   {
   cout<<x<<"/"<<y<<"="<<endl;
   }
   else
   {
    i=i-1;
   }
   break;
  default:
   cout<<"超出测试范围"<<endl;
   break;
  }
 }
 cout<<"恭喜你已经完成了30道数学测试题"<<endl;
 return 0;
}

运行截图:

技术分享

 

C语言编写的随机产生四则运算测试题

标签:

原文地址:http://www.cnblogs.com/zgsxh/p/4318512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!