⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 +-×÷ 函数 随机数 随机符号switch.cpp

📁 我正在学习C编程
💻 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 + -