电脑四则运算出题

本次作业是编写一个自动出四则运算的题的编程题目,拿道题后思考了很久,数字随机产生很简单,但如何去随机加减乘除。经过思考和查阅资料决定运用switch的选择结构,来选择出题的加减乘除。还有一个问题,在选择c语言编写的环境下,随机函数与java中并不一样,java中直接用random=new random()便可,可是在C中需要在头文件中加入#include<time.h>的头文件,并且需要加入这行代码,srand(time(0)); a=rand()%100+1;这是随机产生100以内的随机数。随后不断根据老师的要求改编代码,最终完成如下算法:

 1 #include"stdio.h"
 2 #include"stdlib.h"
 3 #include<time.h>
 4 int main(){
 5 int i,a,b,c,d,e; 
 6 printf("请输入要出的题数:");
 7 scanf("%d",&i); 
 8 srand(time(0));
 9 for(int j=0;j<i;j++)
10     {
11         a=rand()%100+1;
12         b=rand()%100+1;
13         d=rand()%100+1;
14         e=rand()%100+1; 
15         c=rand()%8;
16         if(a<=b){
17            
18             switch(c){
19                 case 0:printf("%d+%d=
",a,b);break;
20                 case 1:printf("%d-%d=
",b,a);break;
21                 case 2:printf("%d×%d=
",a,b);break;
22                 case 3:printf("%d÷%d=
",a,b);break;
23                  
24                 case 4:{ 
25                        if(d<=e) printf("%d/%d+%d/%d=
",a,b,d,e);
26                        else printf("%d/%d+%d/%d=
",a,b,e,d);    
27                 }break;
28                 case 5:{ 
29                        if(d<=e) printf("%d/%d-%d/%d=
",a,b,d,e);
30                        else printf("%d/%d-%d/%d=
",a,b,e,d);    
31                 }break;
32                 case 6:{ 
33                        if(d<=e) printf("%d/%d×%d/%d=
",a,b,d,e);
34                        else printf("%d/%d×%d/%d=
",a,b,e,d);    
35                 }break;
36                 case 7:{ 
37                        if(d<=e) printf("%d/%d÷%d/%d=
",a,b,d,e);
38                        else printf("%d/%d÷%d/%d=
",a,b,e,d);    
39                 }break;
40             }
41             }
42             else{
43                 switch(c){
44                 case 0:printf("%d+%d=
",a,b);break;
45                 case 1:printf("%d-%d=
",a,b);break;
46                 case 2:printf("%d×%d=
",a,b);break;
47                 case 3:printf("%d÷%d=
",b,a);break;
48                  
49                 case 4:{ 
50                        if(d<=e) printf("%d/%d+%d/%d=
",b,a,d,e);
51                        else printf("%d/%d+%d/%d=
",b,a,e,d);    
52                 }break;
53                 case 5:{ 
54                        if(d<=e) printf("%d/%d-%d/%d=
",b,a,d,e);
55                        else printf("%d/%d-%d/%d=
",b,a,e,d);    
56                 }break;
57                 case 6:{ 
58                        if(d<=e) printf("%d/%d×%d/%d=
",b,a,d,e);
59                        else printf("%d/%d×%d/%d=
",b,a,e,d);    
60                 }break;
61                 case 7:{ 
62                        if(d<=e) printf("%d/%d÷%d/%d=
",b,a,d,e);
63                        else printf("%d/%d÷%d/%d=
",b,a,e,d);    
64                 }break;
65             }
66             } 
67     }
68 }

题目演示为:

编写完这个题目收获很多,任何程序都需要一次次的修改,不会在第一遍就能完美完成。一步一个脚印,最好!

原文地址:https://www.cnblogs.com/zzkmark/p/5265379.html