作业帮 > 综合 > 作业

用C语言随机产生三个数,三个数之间进行四则运算,四则运算也随机产生

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 00:44:05
用C语言随机产生三个数,三个数之间进行四则运算,四则运算也随机产生
比如产生了,A,B,C三个数,则A*B-C,反正就是A,B,C之间的符号也要随机产生,还有产生的运算一定要符合运算法则,我弄错了只能从左往右的计算,我的错误:比如2-3*5,计算结果是-5.虽然分不多,救命啊,如果分多肯定多弄点.
#include
#include
#include
#define N 10 //随机出10道题目
int main()
{
\x09int num1,num2,num3,count=0,result,resultTrue,flag;//result:用户输入结果 resultTrue:正确结果 flag:0 先计算左边 1先计算右边
\x09char op1,op2;
\x09
\x09srand(time(NULL)); //启动随机数生成器
\x09do {
\x09\x09count++;
\x09\x09
\x09 \x09num1 = rand() % 10+1;
\x09\x09num2 = rand() % 10+1;
\x09\x09num3 = rand() % 10+1;
\x09\x09switch (num1 % 4)
\x09\x09{
case 0:
\x09\x09\x09\x09op1 = '+';
\x09\x09\x09\x09break;
case 1:
\x09\x09\x09\x09op1 = '-';
\x09\x09\x09\x09break;
\x09 case 2:
\x09\x09\x09\x09op1 = '*';
\x09\x09\x09\x09break;
case 3:
\x09\x09\x09\x09op1 = '/';
\x09\x09\x09\x09break;
default:
\x09\x09\x09\x09break;
\x09\x09}
\x09\x09switch (num2 % 4)
\x09\x09{
\x09\x09\x09case 0:
\x09\x09\x09\x09op2 = '+';
\x09\x09\x09\x09flag = 0;
\x09\x09\x09\x09break;
\x09\x09\x09case 1:
\x09\x09\x09\x09op2 = '-';
\x09\x09\x09\x09flag = 0;
\x09\x09\x09\x09break;
\x09\x09\x09case 2:
\x09\x09\x09\x09op2 = '*';
\x09\x09\x09\x09if((op1=='*')||(op1=='/')) flag = 0;
\x09\x09\x09\x09else flag = 1;
\x09\x09\x09\x09break;
\x09\x09\x09case 3:
\x09\x09\x09\x09op2 = '/';
\x09\x09\x09\x09if((op1=='*')||(op1=='/')) flag = 0;
\x09\x09\x09\x09else flag = 1;
\x09\x09\x09\x09break;
\x09\x09\x09default:
\x09\x09\x09\x09break;
\x09\x09}
\x09\x09printf("%d %c %d %c %d = ",num1,op1,num2,op2,num3);
\x09\x09if(flag==0)
\x09\x09{
\x09\x09\x09resultTrue = 0;
\x09\x09\x09switch (op1)
\x09\x09\x09{
\x09\x09\x09\x09case '+':
\x09\x09\x09\x09\x09resultTrue = num1+num2;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '-':
\x09\x09\x09\x09\x09resultTrue = num1-num2;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '*':
\x09\x09\x09\x09\x09resultTrue = num1*num2;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '/':
\x09\x09\x09\x09\x09resultTrue = num1/num2;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09default:
\x09\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09\x09switch (op2)
\x09\x09\x09{
\x09\x09\x09\x09case '+':
\x09\x09\x09\x09\x09resultTrue += num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '-':
\x09\x09\x09\x09\x09resultTrue -= num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '*':
\x09\x09\x09\x09\x09resultTrue *= num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '/':
\x09\x09\x09\x09\x09resultTrue /= num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09default:
\x09\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09}
\x09\x09else
\x09\x09{
\x09\x09\x09resultTrue = 0;
\x09\x09\x09switch (op2)
\x09\x09\x09{
\x09\x09\x09\x09case '+':
\x09\x09\x09\x09\x09resultTrue = num2+num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '-':
\x09\x09\x09\x09\x09resultTrue = num2-num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '*':
\x09\x09\x09\x09\x09resultTrue = num2*num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '/':
\x09\x09\x09\x09\x09resultTrue = num2/num3;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09default:
\x09\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09\x09switch (op1)
\x09\x09\x09{
\x09\x09\x09\x09case '+':
\x09\x09\x09\x09\x09resultTrue = num1 + resultTrue;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '-':
\x09\x09\x09\x09\x09resultTrue = num1 - resultTrue;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '*':
\x09\x09\x09\x09\x09resultTrue = num1 * resultTrue;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09case '/':
\x09\x09\x09\x09\x09resultTrue = num1 / resultTrue;
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09default:
\x09\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09}
\x09\x09scanf("%d",&result);
\x09\x09if (result == resultTrue)
\x09\x09\x09printf("结果正确!\n");
\x09\x09else
\x09\x09\x09printf("结果错误!\n");
\x09} while(count