1 Star 0 Fork 0

L-L/firstwarehouse

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
computation1.c 7.01 KB
一键复制 编辑 原始数据 按行查看 历史
L-L 提交于 2020-02-26 14:05 . 四则运算代码文本
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include <ctype.h>
#include<windows.h>
int menu(int num1); //显示菜单界面
void Exercise(char choose); //随机生成各难度梯度的四则运算
//主函数
int main()
{
char choose;
int num1=1;
while(1)
{
num1=menu(num1);
flushall(); //清除缓冲区的换行符
scanf("%c",&choose);
if((int)choose<48||(int)choose>54) //判断用户的输入是否符合要求(ASCII码)
{
printf("\n\t您的输入有误,请重新输入!\n");
Sleep(1000); //计时函数,产生1秒的延时
system("cls");
num1=1;
continue;
}
Exercise(choose);
}
return 0;
}
int menu(int num1)
{
char ch;
if(num1==1)
num1++;
else
{
while(1)
{
printf("是否清除练习记录(Y/N):");
flushall(); //清除缓存
scanf("%c",&ch);
if((int)ch==89||(int)ch==121)
{
system("cls"); //清屏操作
break;
}
else if((int)ch==78||(int)ch==110) break;
else
printf("您的输入有误!\n");
}
}
printf("**************************************************\n");
printf("\t 小学生四则运算练习软件\n");
printf("\t 1、加法练习\t2、减法练习\n");
printf("\t 3、乘法练习\t4、除法练习\n");
printf("\t 5、混合练习\t0、退出系统\n");
printf("请输入你的选择(0--5):\n");
printf("\n*************************************************\n");
return num1;
}
void Exercise(char choose)
{
int i,j,num,k;
int ra=0,ua=0; //初始化正确题目的数量和错误题目的数量
int p[20],m[4]={10,100,200,500}; //产生的随机数保存在数组p[20]中
float q[20],result;
srand(time(NULL)); //产生随机数
printf("请给出出题数量:");
scanf("%d",&num);
for(i=0;i<num;i++)
{
if(choose==49||choose==50)
{
if(i==0)
{
printf("请选择难度系数:1、小学一年级 2、小学二年级\n");
printf(" 3、小学三,四年级 4、小学五,六年级\n\n");
printf(" 难度等级:");
scanf("%d",&j);
}
for(k=0;k<j+1;k++)
p[k]=rand()%m[j-1];
k=0;
p[j+1]=p[0];
printf("%d",p[k]);
k++;
}
switch(choose) //根据用户的输入选择不同的操作
{
case '1':{
while(k<j+1)
{
printf(" + %d",p[k]);
p[j+1]+=p[k];
k++;
}
break;
}
case '2':{
while(k<j+1)
{
printf(" - %d",p[k]);
p[j+1]-=p[k];
k++;
}
break;
}
case '3':{
if(i==0)
{
printf("请选择难度系数:1、小学二年级 2、小学三年级\n");
printf(" 3、小学四年级 4、小学五,六年级\n\n");
printf(" 难度等级:");
scanf("%d",&j);
}
for(k=0;k<j+1;k++)
p[k]=rand()%m[j-1];
k=0;
p[j+1]=p[0];
printf("%d",p[k]);
k++;
while(k<j+1)
{
printf(" * %d",p[k]);
p[j+1]*=p[k];
k++;
}
break;
}
case '4':{
int m[4]={50,100,500,1000};
if(i==0)
{
printf("请选择难度系数:1、小学三年级 2、小学四年级\n");
printf(" 3、小学五年级 4、小学六年级\n\n");
printf(" 难度等级:");
scanf("%d",&j);
printf("\t若结果为小数,请将结果保留两位小数\n");
}
for(k=0;k<j+1;k++)
p[k]=rand()%m[j-1];
k=0;
printf("%d",p[k]);
q[0]=(float)p[0];
k++;
while(k<j+1)
{
q[k]=(float)p[k];
printf(" / %d",p[k]);
q[0]/=q[k];
k++;
}
break;
}
case '5':{
if(i==0)
{
printf("请选择难度等级:1. * 2. **\n");
printf(" 3. *** 4. ****\n");
scanf("%d",&j);
}
for(k=0;k<4;k++)
{
p[k]=rand()%m[j-1];
q[k+1]=(float)p[k];
}
if(i%4==0)
{
printf("%d + %d - %d * %d",p[0],p[1],p[2],p[3]);
q[0]=q[1]+q[2]-q[3]*q[4];
}
else if(i%4==1)
{
while(p[1]==0)
p[1]=rand()%m[j-1];
q[2]=(float)p[1];
printf("%d / %d + %d * %d",p[0],p[1],p[2],p[3]);
q[0]=q[1]/q[2]+q[3]*q[4];
}
else if(i%4==2)
{
printf("%d + %d * (%d - %d)",p[0],p[1],p[2],p[3]);
q[0]=q[1]+q[2]*(q[3]-q[4]);
}
else
{
printf("%d * (%d + (%d - %d))",p[0],p[1],p[2],p[3]);
q[0]=q[1]*(q[2]+(q[3]-q[4]));
}
}
case '0':{
printf("\t 感谢您的使用^_^,再见\n");
exit(0);
break;
}
}
printf("=");
if(choose==49||choose==50||choose==51)
{
scanf("%f",&result);
if(result==p[j+1])
{
printf("you are right!\n");
ra+=1;
}
else
{
printf("wrong!Try again\n");
ua+=1;
}
}
if(choose==52||choose==53)
{
scanf("%f",&result);
if(fabs(result-q[0])<0.01) //若运算结果为小数,则保留两位小数即可
{
printf("you are right!\n");
ra+=1;
}
else
{
printf("wrong!Try again\n");
ua+=1;
}
}
}
printf("\n 答对 %d 道题,答错 %d 道题,得分为 %d \n\n",ra,ua,ra*100/num);
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/Rachelee/firstwarehouse.git
git@gitee.com:Rachelee/firstwarehouse.git
Rachelee
firstwarehouse
firstwarehouse
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891