📄 +-×÷ 函数 随机数 随机符号switch.cpp
字号:
#include<stdio.h> //导入包含I/O函数的头文件stdio.h
#include<stdlib.h> //导入包含随机数函数的头文件stdlib.h
#include<time.h> //导入 的头文件time.h
int addition(int x1,int y1) //定义加法函数,返回整型值,整型形参
{
int z,num1=0;
printf(" %d+%d= ",x1,y1);scanf("%d",&z);
if(x1+y1==z){printf(" 答案正确.");num1++;}
else {printf(" 答案错误!");}
return num1;
}
int subtraction(int x2,int y2) //定义减法函数,返回整型值,整型形参
{
int z,num2=0;
printf(" %d-%d= ",x2,y2);scanf("%d",&z);
if(x2-y2==z){printf(" 答案正确.");num2++;}
else {printf(" 答案错误!");}
return num2;
}
int multiplication(int x3,int y3) //定义乘法函数,
{
int z,num3=0;
printf(" %d×%d= ",x3,y3);scanf("%d",&z);
if(x3*y3==z){printf(" 答案正确.");num3++;}
else {printf(" 答案错误!");}
return num3;
}
int division(int x4,int y4) //定义除法函数
{
int num4=0; double x,y,z; x=(double)x4; y=(double)y4;
printf(" %.0lf÷%.0lf= ",x,y);scanf("%lf",&z);
if(x/y==z){printf(" 答案正确.");num4++;}
else {printf(" 答案错误!");}
return num4;
}
void main()
{
printf("\n\t四则运算,输入任意两个整数(任意一数为0时结束)和+-×÷运算符,求值\n\n");
while(1)
{
int i,x,y,n,m,n1=0,n2=0,n3=0,n4=0,number;
printf(" 你想做多少道题?输入题数: "); scanf("%d",&number);
if(number<=0){printf("────题数不应为0及负数!请重新输入\n"); printf("\n"); continue;}
printf("\n 选择进行四则运算的整数范围(起始整数与终止整数不应相同)\n");
printf(" 输入一个起始整数: "); scanf("%d",&n);
printf(" 输入一个终止整数: "); scanf("%d",&m);
i=0;
float d=0;
while(i<number)
{
srand((unsigned)time(NULL));//用当前的时间设置rand()随机数函数的种子值
x=n+rand()%(m-n);
y=n+rand()%(m-n);
char c;
int ch; //ch为+-×÷符号的ASCII码值?
while(ch=42+rand()%5,(ch!=47&&ch!=43&&ch!=45&&ch!=42)){;} //随机产生+-*/符号 问题?从不自动产生除法?
c=ch;
printf(" 请输入正确的答案: ");
switch(c)
{case '+':n1+=addition(x,y);break; //调用加法函数,返回回答正确的题数赋予n1
case '-':n2+=subtraction(x,y);break; //调用减法函数
case '*':n3+=multiplication(x,y);break;//调用除法函数
case '/':n4+=division(x,y);break; //调用除法函数
default:printf(" 四则运算符输入错误Input error!\n");
}
i++;
d=((float)(n1+n2+n3+n4)/i);
printf("\n 欲继续运算吗?是则回车,否则输入‘空格’回车 ");
getchar();
if(getchar()==' '){printf(" 你已做了%d道题,回答正确%d道,准确率为%.2f%\n",i,(n1+n2+n3+n4),d*100);break;}
else {while(getchar()!='\n'){;}}
}
if(i>=number){printf(" 你已做了%d道题,回答正确%d道,准确率为%.2f%\n",i,(n1+n2+n3+n4),d*100);}//重复输出?
printf("\n\t欲重新开始吗?是则回车,否则输入‘空格’回车 ");
getchar();
if(getchar()==' '){break;} //有问题?
else {while(getchar()!='\n'){;}}
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -