一.整体概要
1.此程序可以实现随机产生30道数学题,并给出答案。
2.加、减、乘、除四种运算随机产生,除法都是整除。
二.编写过程
题目要求每次产生30道随机四则运算,所以我用rand()来产生随机数,for作为主循环来控制运算个数,里面嵌套switch case用来控制随机运算符。当case=0时,随机数执行加法运算;case=1时,随机数执行减法运算,因为不能出现负数,所以在运算之前判断产生的减数与被减数的大小,在进一步进行计算;case=2时,随机数执行乘法运算;case=3时,随机数执行除法运算,做除法运算之前用取余是否为零的方法先判断是否能够整除,若能够整除则继续运算,否则舍去本次产生的随机数,重新开始本次循环。每次运算后都计算出结果存入数组answer中,产生30道题之后跳出主for循环,执行输出运算结果的for循环,结果都输出后程序结束。
三.运行结果
随机产生30道四则运算题
出题完成后会直接给出答案
四.代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int x,y,z,t,answer[30],i;
srand(time(NULL));
printf("小学二年级四则运算测试题\n");
for(i=1;i<31;i++)
{
x=rand()%10+1;//产生随机数
y=rand()%10+1;
z=rand()%4;//产生随机四则运算符
switch(z)
{
case 0://加法
printf("%d+%d=\n",x,y);
answer[i]=x+y;
break;
case 1://减法
if(x<y)
{
t=x;
x=y;
y=t;
}
printf("%d-%d=\n",x,y);
answer[i]=x-y;
break;
case 2://乘法
printf("%d*%d=\n",x,y);
answer[i]=x*y;
case 3://除法
if(y!=0)
{ if((x%y)==0){//判断是否能整除
printf("%d/%d=\n",x,y);
answer[i]=x/y;
i--;
else
i=i-1;
}
}
printf("\n出题完成\n");
printf("答案为:");
// system("pause");
printf("\n");
for(i=1;i<30;i++)
{
printf("%d\n",answer[i]);
}
return 0;