一、背景
阿超有个儿子上小学二年级,老师每天让家长给孩子出30道加减法题,虽然不多,但是每天都做也算是个负担,阿超作为一个老牌程序员当然想用计算机来解决这个小问题,目前对于这个问题对于任何语言都不是问题,比如:
C/C++、C#、Java、Python、VB、JavaScript、Perl……
具体要求如下:
- 能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
- 除了整数外,还要支持真分数的四则运算
请大家用任何一种自己擅长的语言来编写这段程序,并把程序的介绍和自己编写的过程写一个博客
二、分析
(一) 自己擅长的是c语言,准备用c语言,支持真分数运算,如果用C语言,我们可以这么考虑,a,b,c,d随机生成。可以生成菜单,然后选择自己想要的运算,加减乘除四则运算均可以。
(二)当进行一次运算之后可以实现选择选择查看答案或者是进行下一题。然后可以进行不同的操作。
(三)输入一个数,知道出题的数目,随机产生的题数目,多输也会提示输入错误。
三、代码部分
我用的是C语言写的:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int a,b,op,os;
printf(" [小学生四则运算]
");
aq1: printf("选择您想挑战的运算法则
");
printf("1.加法 2.减法 3.乘法 4.除法
");
scanf("%d",&op);
switch(op)
{
aq: case 1:
srand((unsigned)time(NULL));
a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d + %d = ?
",a,b);
printf("1.查看答案 2.做下一题
");
scanf("%d",&os);
if(os==1)
{printf("%d + %d =%d
",a,b,a+b);
goto aq1;
}
else
goto aq;
break;
at: case 2:a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d - %d = ?
",a,b);
printf("1.查看答案 2.做下一题
");
scanf("%d",&os);
if(os==1)
{printf("%d - %d =%d
",a,b,a-b);
goto aq1;
}
else
goto at;
break;
aq2: case 3:
a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d * %d = ?
",a,b);
printf("1.查看答案 2.做下一题
");
scanf("%d",&os);
if(os==1)
{printf("%d * %d =%d
",a,b,a*b);
goto aq1;
}
else
goto aq2;
aq3: case 4:
a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d / %d = ?
",a,b);
printf("1.查看答案 2.做下一题
");
scanf("%d",&os);
if(os==1)
{printf("%d / %d =%d
",a,b,a/b);
goto aq1;
}
else
goto aq3;
break;
}
}