Github项目地址:
https://github.com/huige666666/sizeyunsuan/tree/master
1,题目:
(1)能自动生成小学四则运算题目,并且不能出现负数;
(2)能支持真分数的四则运算;
2,思路:
四则运算加减乘除,采用两个随机数,由于不能出现负数,则对两个随机数进行比较大小再进行减法运算,除法一向特殊,所以在随机数的取值范围中设置不包括0。
3,实现过程:
void add()实现加法运算。
void minu()实现减法运算。
void mul()实现乘法运算。
void di()实现除法运算。
4, 代码说明:
首先说明整数的四则运算,生成两个随机数并随机运算,在减法中比较大小防止出现负数,在除法中比较大小并循环取整除的随机数组合。最后输出算式并返回正确答案。
#include<stdio.h>
#include<math.h>
#include<windows.h>
int right=0;
int wrong=0;
void add()
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请回答: %d + %d = ",a,b);
scanf("%d",&c);
if(a+b==c)
{
printf("回答正确! ");
right++;
}
else
{
printf("回答错误! ");
wrong++;
}
}
void minu()
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请回答: %d - %d = ",a,b);
scanf("%d",&c);
if(a-b==c)
{
printf("回答正确! ");
right++;
}
else
{
printf("回答错误! ");
wrong++;
}
}
void mul()
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请回答: %d * %d = ",a,b);
scanf("%d",&c);
if(a*b==c)
{
printf("回答正确! ");
right++;
}
else
{
printf("回答错误! ");
wrong++;
}
}
void di()
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请回答: %d / %d = ",a,b);
scanf("%d",&c);
if(a/b==c)
{
printf("回答正确! ");
right++;
}
else
{
printf("回答错误! ");
wrong++;
}
}
int main()
{
int choise;
int con=0;
printf(" 欢迎进入小学简易四则运算 ");
while(1)
{
printf("请选择: ");
printf(" 加法运算(请输入1) ");
printf(" 减法运算(请输入2) ");
printf(" 乘法运算(请输入3) ");
printf(" 除法运算(请输入4) ");
printf(" 退出运算(请输入5) ");
if(con==0)
scanf("%d",&choise);
switch(choise)
{
case 1:
add();
break;
case 2:
minu();
break;
case 3:
mul();
break;
case 4:
di();
break;
case 5:
return 0;
}
printf(" 继续运算?(请输入1) ");
printf(" 重新选择?(请输入2) ");
printf(" 退出运算?(请输入3) ");
scanf("%d",&con);
if(con==1)
con=1;
else if(con==2)
con=0;
else if(con==3)
break;
else
printf("抱歉!,你输入的指令有误!请重新输入! ");
}
printf("您总共完成了 %d 道题 正确 %d 道 错误 %d 道 ",right+wrong,right,wrong);
}
5,测试运行:
先测试运行第一个模式,如下图:
测试运行第二个模式,如下图:
测试运行第三个模式,如下图:
测试运行第四个模式,如下图:
6,效能分析
考虑到用户输入会影响效能分析中的时间因素,去掉了主函数中接受用户输入并比较的部分,直接改成由代码随机生成算式然后计算结果。
7,PSP表格: