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; 
    }
    

      

  • 相关阅读:
    QPS、TPS、RT、并发数、吞吐量理解和性能优化深入思考
    从开源协议到谷歌禁用华为、Docker实体清单事件
    如何画好架构图?
    使用委托的异步方法
    里氏替换原则(转)
    HTTP协议详解(转)
    httpApplication事件和asp.net生命周期(整理)
    WebDev.WebServer.exe
    正则表达式的3种匹配模式
    Code First实体与数据表之间的映射关系
  • 原文地址:https://www.cnblogs.com/hewupeng/p/4384295.html
Copyright © 2011-2022 走看看