//用户从键盘上输入两个整数,然后输出他们和
//用户从键盘上输入两个整数,然后输出他们差
//用户从键盘上输入两个整数,输出他们的商
//用户从键盘上输入两个整数,输出他们的余数
#include <stdio.h>
int sum(int x, int y);//加法
int min(int x, int y);//减法
int quYu(int x, int y);//取余
int shang(int x, int y);//商
int operation_Symbol(char a);//判断运算符号
void resultLastTset(char medu);//用户输入的数字处理
int data_Processing(char num1, int nmb1, int nmb2);//结果处理
int main() {
//定义一个变量接受用户输入的运算符号
char _num1 = '+';
//接受检测用户输入的运算符号
for (int i = 0; i < 1; i++) {
//提示用户选择要进行的运算
printf("请选择要进行运算的运算符号:\n+,-,/,%%\n按Enter结束\n");
//接受用户输入的运算符号
scanf("%c", &_num1);
//判断运算符号是否正确
if (operation_Symbol(_num1)) {
//运算符号错误提示用户重新输入
printf("运算符号输入有误,请重新输入!\n");
i--;
}
}
resultLastTset(_num1);
}
//加法运算
int sum(int x, int y){
return x + y;
}
//减法运算
int min(int x, int y){
return x - y;
}
//取余运算
int quYu(int x, int y){
return x % y;
}
//除法运算
int shang(int x, int y){
return x / y;
}
//结果处理
int data_Processing(char num1, int nmb1, int nmb2){
//记录运算结果
int resurt = 0;
//根据用户选择响应运算方法
switch (num1) {
case '+':
//获取运算结果
resurt = sum(nmb1, nmb2);
break;
case '-':
//获取运算结果
resurt = min(nmb1, nmb2);
break;
case '*':
//获取运算结果
resurt = quYu(nmb1, nmb2);
break;
case '/':
//获取运算结果
resurt = shang(nmb1, nmb2);
break;
default:
break;
}
return resurt;
}
//运算符号判断
int operation_Symbol(char a){
switch(a) {
//判断是否为加法
case '+':
//判断是否为减法
case '-':
//判断是否要为模运算
case '%':
//判断是否为除法
case '/':
return 0;
break;
//运算符号输入有误
default:
return 1;
break;
}
}
//输入的数字检测
void resultLastTset(char medu){
//定义一个变量来记录运算结果
int _resurt = 0;
//定义变量来存储用户输入的数字
int _nmb1 = 0;
int _nmb2 = 0;
//接受用户的输入
//传值
float testNmb1 = 0.0f;
float testNmb2 = 0.0f;
//检测用户输入的数据是否是整型
for (int y = 0; y < 1; y++){
//提示用户输入要运算的数字
printf("请输入要进行运算的数字,以','间隔并且按Enter结束\n");
//清空scanf函数的缓冲区
rewind(stdin);
//接受输入
_resurt = scanf("%f,%f", &testNmb1, &testNmb2);
//将接受到的值进行强转
_nmb1 = (int)testNmb1;
_nmb2 = (int)testNmb2;
//判断用户输入的数值是否是整型
if (_resurt < 2) {
printf("输入的数字有误,请重新输入!\n");
y--;
}else if (!(testNmb1 == _nmb1 && testNmb2 == _nmb2 )){
printf("输入的数字有误,请重新输入!\n");
y--;
}else if (medu == '/' && _nmb2 != 0) {//除数不能为0
//提示
printf("除数不能为0,请重新输入!\n");
//循环再进行
y--;
//跳出本次循环
}
}
//接收运算结果
_resurt = data_Processing(medu, _nmb1, _nmb2);
//打印用户进行的运算
printf("你需要的运算为:%d %c %d = %d\n", _nmb1, medu, _nmb2, _resurt);
}
|