zoukankan      html  css  js  c++  java
  • 四则运算升级版

    #include <stdlib.h> 
    #include <stdio.h> 
    #include<time.h>
    int main(void) 
    { 
    int n=0,i,d=0,q,w,k,l,c=0,e,r,j;
    float cout=0; 
    char *a[6]={"+","-","*","/","(",")"};
    char b;
    printf("1.随机生成
    2.退出
    ");
    do{
    	do{
    		scanf("%d",&j);getchar();
    		if((j>2)||(j<1))
    			printf("输入错误,请重新输入:");
    	}while((j>2)||(j<1));
    	
    switch(j){
    case 1:
    	printf("开始生成
    "); 
    	printf("产生题数:"); 
    		do{
    		scanf("%d",&n);getchar();
    		if(n==0)
    			printf("输入错误,请重新输入:");
    	}while(n==0);
    	printf("输入控制数字范围:");
    		do{
    		scanf("%d",&c);getchar();
    		if(c==0)
    			printf("输入错误,请重新输入:");
    	}while(c==0);
    	c++;
    	cout=0.0;
    	srand(time(NULL));
    	for(d=0;d<n;d++){
    	i=rand() % 8;
    	q=rand() % c;
    	w=rand() % c;
    	switch(i)
    	{
    		case 1:
    		printf("%d+%d=",q,w);
    		scanf("%d",&k);
    			if(k==(q+w)){
    				printf("恭喜回答正确! 得%d分!
    ",100/n);
    				cout+=(100/n);
    			}
    			else
    				printf("回答错误,继续加油!
    ");
    		break;
    		case 2:
    		printf("%d-%d=
    ",q,w);
    				scanf("%d",&k);
    			if(k==(q-w)){
    				printf("恭喜回答正确! 得%d分!
    ",100/n);
    				cout+=(100/n);
    			}
    			else
    				printf("回答错误,继续加油!
    ");
    		break;
    		case 3:
    			printf("%d*%d=
    ",q,w);
    				scanf("%d",&k);
    			if(k==(q*w)){
    				printf("恭喜回答正确! 得%d分!
    ",100/n);
    				cout+=(100/n);
    			}
    			else
    				printf("回答错误,继续加油!
    ");
    			break;
    		case 4:
    			do{
    			if(w==0)
    				w=rand() % c;}while(w==0);
    			printf("%d/%d=
    ",q,w);
    			printf("1.答案为整数
    2.答案为分数
    ");
    			scanf("%d",&k);
    			switch(k){
    				case 1:
    					scanf("%d",&k);
    				if(k==(q/w)){
    					printf("恭喜回答正确! 得%d分!
    ",100/n);
    					cout+=(100/n);
    				}
    				else
    					printf("回答错误,继续加油!
    ");
    				break;
    				case 2:
    					scanf("%d",&k);
    					scanf("%c",&b);
    					getchar();
    					scanf("%d",&l);
    					if((k/l)==(q/w)){
    					printf("恭喜回答正确! 得%d分!
    ",100/n);
    					cout+=(100/n);
    					}
    					else
    					printf("回答错误,继续加油!
    ");
    				break;
    				default:
    					printf("默认整数
    ");
    					scanf("%d",&k);
    					if(k==(q/w)){
    					printf("恭喜回答正确! 得%d分!
    ",100/n);
    					cout+=(100/n);
    					}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					}
    				break;
    		case 5:
    			e=rand() % c;
    			r=rand() % c;
    			do{
    			if(w==0||r==0)
    				w=rand() % c;	r=rand() % c;
    			}while(w==0||r==0);
    			printf("(%d/%d)+(%d/%d)=
    ",q,w,e,r);
    			printf("1.答案为整数
    2.答案为分数
    ");
    			scanf("%d",&k);
    			switch(k){
    				case 1:
    					scanf("%d",&k);
    				if(k==((q/w)+(e/r))){
    					printf("恭喜回答正确! 得%d分!
    ",100/n);
    					cout+=(100/n);
    				}
    				else
    					printf("回答错误,继续加油!
    ");
    				break;
    				case 2:
    					scanf("%d",&k);
    					scanf("%c",&b);
    					getchar();
    					scanf("%d",&l);
    					if((k/l)==((q/w)+(e/r))){
    					printf("恭喜回答正确! 得%d分!
    ",100/n);
    					cout+=(100/n);
    					}
    					else
    					printf("回答错误,继续加油!
    ");
    				break;
    				default:
    					printf("默认整数
    ");
    					scanf("%d",&k);
    					if(k==((q/w)+(e/r))){
    					printf("恭喜回答正确! 得%d分!
    ",100/n);
    					cout+=(100/n);
    					}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					}
    				break;
    			case 6:
    				e=rand() % c;
    				r=rand() % c;
    				do{
    				if(w==0||r==0)
    					w=rand() % c;	r=rand() % c;
    				}while(w==0||r==0);
    				printf("(%d/%d)-(%d/%d)=
    ",q,w,e,r);
    				printf("1.答案为整数
    2.答案为分数
    ");
    				scanf("%d",&k);
    				switch(k){
    					case 1:
    						scanf("%d",&k);
    						if(k==((q/w)-(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    						else
    						printf("回答错误,继续加油!
    ");
    					break;
    					case 2:
    						scanf("%d",&k);
    						scanf("%c",&b);
    						getchar();
    						scanf("%d",&l);
    						if((k/l)==((q/w)-(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					default:
    						printf("默认整数
    ");
    						scanf("%d",&k);
    						if(k==((q/w)-(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					}
    				break;
    			case 7:
    				e=rand() % c;
    				r=rand() % c;
    				do{
    				if(w==0||r==0)
    					w=rand() % c;	r=rand() % c;
    				}while(w==0||r==0);
    				printf("(%d/%d)*(%d/%d)=
    ",q,w,e,r);
    				printf("1.答案为整数
    2.答案为分数
    ");
    				scanf("%d",&k);
    				switch(k){
    					case 1:
    						scanf("%d",&k);
    						if(k==((q/w)*(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    						else
    						printf("回答错误,继续加油!
    ");
    					break;
    					case 2:
    						scanf("%d",&k);
    						scanf("%c",&b);
    						getchar();
    						scanf("%d",&l);
    						if((k/l)==((q/w)*(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					default:
    						printf("默认整数
    ");
    						scanf("%d",&k);
    						if(k==((q/w)*(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					}
    				break;
    			case 0:
    				e=rand() % c;
    				r=rand() % c;
    				do{
    				if(w==0||r==0)
    					w=rand() % c;	r=rand() % c;
    				}while(w==0||r==0);
    				printf("(%d/%d)/(%d/%d)=
    ",q,w,e,r);
    				printf("1.答案为整数
    2.答案为分数
    ");
    				scanf("%d",&k);
    				switch(k){
    					case 1:
    						scanf("%d",&k);
    						if(k==((q/w)/(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    						else
    						printf("回答错误,继续加油!
    ");
    					break;
    					case 2:
    						scanf("%d",&k);
    						scanf("%c",&b);
    						getchar();
    						scanf("%d",&l);
    						if((k/l)==((q/w)/(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					default:
    						printf("默认整数
    ");
    						scanf("%d",&k);
    						if(k==((q/w)/(e/r))){
    						printf("恭喜回答正确! 得%d分!
    ",100/n);
    						cout+=(100/n);
    						}
    					else
    						printf("回答错误,继续加油!
    ");
    					break;
    					}
    				break;
    	}
    	}
    	printf("总成绩%0.1f!
    ",cout);
    	j=-1;
    	printf("
    1.随机生成
    2.退出
    ");
    	break;
    case 2:
    	exit(0);
    	break;
    default:
    	printf("输入错误!请重新输入
    ");
    	break;
    }}while(j==-1);
    return 0; 
    }
    

      

  • 相关阅读:
    Struts2 与 Spring MVC
    RESTful Web Service
    [找程序员代写推荐]spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧!
    [找程序员代写推荐]1、拖地要30分钟, 只有一个拖把 2、擦窗要30分钟, 只有一块抹布 3、切菜要30分钟, 只有一把刀 假设只有以上工具才能完成工作时,完成此三件 工作需要两个人工作多长时间?
    [原]精简高效CSS系列之二——浮动float
    [找程序员代写推荐]struts2验证+拦截器+国际化+下载excle文档+struts2二级联动+OGNL表达试+ssh集成部分代码, 项目下载、
    [原]精简高效CSS系列之一——CSS样式用法
    [原]反对网抄,没有规则可以创建目标&quot;install&quot; 靠谱解答
    如何鉴别程序抄袭c语言程序代写
    [原]CSS+DIV总结
  • 原文地址:https://www.cnblogs.com/hewupeng/p/4384295.html
Copyright © 2011-2022 走看看