+-×÷ 随机数 switch错例.cpp

来自「我正在学习C编程」· C++ 代码 · 共 51 行

CPP
51
字号
#include<stdio.h>   //导入包含I/O函数的头文件stdio.h    
#include<stdlib.h>  //导入包含随机数函数的头文件stdlib.h
#include<time.h>    //导入          的头文件time.h
void main()
{
	char c;
	int x,y,z,n,m;
	printf("\n\t四则运算,输入任意两个整数(任意一数为0时结束)和+-×÷运算符,求值\n\n");
	while(1)
	{
		printf("  选择进行四则运算的整数范围\n");
		printf("  输入一个起始整数: "); scanf("%d",&n);
		printf("  输入一个终止整数: "); scanf("%d",&m);
		if(getchar()=='\n');  
		while(1)
		{
			srand((unsigned)time(NULL));//用当前的时间设置rand()随机数函数的种子值
			x=n+rand()%(m-n);
			y=n+rand()%(m-n);
			printf("  欲进行何种运算,输入四则运算符: "); 	scanf("%c",&c);
			printf("  请输入正确的答案:  ");
			if(getchar()=='\n');      //不完整,连续输入两个以上数字时出错?
			switch(c)
				{case '+':printf("  %d+%d= ",x,y);scanf("%d",&z);
						  if(x+y==z){printf("  答案正确.");}
						  else {printf("  答案错误!\n");}break;
				 case '-':printf("  %f-%f= ",x,y);scanf("%d",&z);
						  if(x-y==z){printf("  答案正确.");}
						  else {printf("  答案错误!\n");}break;
				 case '*':printf("  %f×%f= ",x,y);scanf("%d",&z);
						  if(x*y==z){printf("  答案正确.");}
						  else {printf("  答案错误!\n");}break;
				 case '/':printf("  %f÷%f= ",x,y);scanf("%d",&z);
						  if(x/y==z){printf("  答案正确.");}
						  else {printf("  答案错误!\n");}break;
				 default:printf("  Input error四则运算符输入错误!\n");
				}

			printf("\n  欲继续运算吗?是则回车,否则输入‘空格’回车 ");
			getchar();
			if(getchar()==' '){break;}
			else {while(getchar()!='\n'){;}}
			printf("\n");
		}
		printf("\n  欲重新开始吗?是则回车,否则输入‘空格’回车 ");
		getchar();
		if(getchar()==' '){break;}
		else {while(getchar()!='\n'){;}}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?