zoukankan      html  css  js  c++  java
  • C语言寒假大作战04

    2.2.1 作业头:

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-3
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10278
    这个作业的目标 使用随机数和使用git
    作业正文 如下
    其他参考文献 https://www.runoob.com/cprogramming/c-function-rand.html

    2.2.2 设计思路和遇到的问题

    这次就是仿照上次代码再算出结果,麻烦了许多,写了我200多行。老是出错,尤其是数组那块,因为不熟练,浪费我好多时间,搞得我觉得我小学三年级题目都不会了。还有就是输出结果要输出实数用%g,百度了才知道,明明上学期还用过的。

    2.2.3 程序结果截图


    2.2.4 程序代码

    #include<stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main()
    {
    	int a=0,b,c,e;
    	char d;
    	char f[4] = {'+', '-', '*', '/'};
    	int n,m,k; 
    	srand((unsigned int)time(0));
    	printf("==========口算生成器=========
    ");
    	printf("欢迎使用口算生成器 :
    ");
    	printf("
    ");
    	printf("
    ");
    	printf("帮助信息
    ");
    	printf("您需要输入命令代号来进行操作, 且
    ");
    	printf("一年级题目为不超过十位的加减法;
    ");
    	printf("二年级题目为不超过百位的乘除法;
    ");
    	printf("三年级题目为不超过百位的加减乘除混合题目.
    ");
    	printf("
    ");
    	printf("
    ");
    	while(a!=5)
    	{
    		printf("操作列表:
    ");
    	    printf("1)一年级    2)二年级    3)三年级
    ");
    	    printf("4)帮助     5)退出程序
    ");
    	    printf("请输入操作>");
    		scanf("%d",&a);
    		printf("<执行操作:)
    ");
    		printf("
    ");
    		printf("
    ");
    		switch(a)
    		{
    			case 1:printf("现在是一年级题目:
    ");
    			printf("请输入生成个数>");
    			scanf("%d",&b); 
    			for(int i=1;i<=b;i++)
    			{
    				n=rand()%11;
    				printf("%2d",n);
    				c=rand()%2;
    				d=f[c];
    				printf(" %c ",d);
    				m=rand()%11;
    				printf("%2d=",m);
    				switch(c)
    				{
    					case 0:printf("%2d
    ",n+m);break;
    					case 1:printf("%2d
    ",n-m);break;
    				} 
    			}
    			printf("
    ");printf("
    ");break; 
    			case 2:printf("现在是二年级题目:
    ");
    			printf("请输入生成个数>");
    			scanf("%d",&b);
    			for(int i=1;i<=b;i++)
    			{
    				n=rand()%100;
    				printf("%2d",n);
    				c=rand()%4;
    				d=f[c];
    				printf(" %c ",d);
    				if(d=='/')
    				{
    					m=rand()%100+1;
    					printf("%2d=",m);
    					switch(c)
    					{
    						case 0:printf("%d
    ",n+m);break;
    						case 1:printf("%d
    ",n-m);break;
    						case 2:printf("%d
    ",n*m);break;
    						case 3:printf("%g
    ",1.0*n/m);break;
    					}
    				}
    				else
    				{
    					m=rand()%100;
    					printf("%2d=",m);
    					switch(c)
    					{
    						case 0:printf("%d
    ",n+m);break;
    						case 1:printf("%d
    ",n-m);break;
    						case 2:printf("%d
    ",n*m);break;
    						case 3:printf("%g
    ",1.0*n/m);break;
    					}
    				}
    				
    			}
    			printf("
    ");printf("
    ");break; 
    			case 3:printf("现在是三年级题目:
    ");
    			printf("请输入生成个数>");
    			scanf("%d",&b);
    			for(int i=1;i<=b;i++)
    			{
    				n=rand()%100;
    				printf("%2d",n);
    				c=rand()%4;
    				d=f[c];
    				printf(" %c ",d);
    				if(d=='/')
    				{
    					m=rand()%100+1;
    					printf("%2d",m);
    				}
    				else
    				{
    					m=rand()%100;
    					printf("%2d",m);
    				}
    				e=rand()%4;
    				d=f[e];
    				printf(" %c ",d);
    				if(d=='/')
    				{
    					k=rand()%100+1;
    					printf("%2d=",k);
    					switch(c)
    					{
    						case 0:switch(e)
    					       {
    						        case 0:printf("%d
    ",n+m+k);break;
    						        case 1:printf("%d
    ",n+m-k);break;
    						        case 2:printf("%d
    ",n+(m*k));break;
    						        case 3:printf("%g
    ",n+(1.0*m/k));break;
    					        } break;
    						case 1:switch(e)
    					       {
    						        case 0:printf("%d
    ",n-m+k);break;
    						        case 1:printf("%d
    ",n-m-k);break;
    						        case 2:printf("%d
    ",n-(m*k));break;
    						        case 3:printf("%g
    ",n-(1.0*m/k));break;
    					        } break;
    						case 2:switch(e)
    					       {
    						        case 0:printf("%d
    ",(n*m)+k);break;
    						        case 1:printf("%d
    ",(n*m)-k);break;
    						        case 2:printf("%d
    ",(n*m)*k);break;
    						        case 3:printf("%g
    ",(1.0*n*m)/k);break;
    					        } break;
    						case 3:switch(e)
    					       {
    						        case 0:printf("%g
    ",(1.0*n/m)+k);break;
    						        case 1:printf("%g
    ",(1.0*n/m)-k);break;
    						        case 2:printf("%g
    ",(1.0*n/m)*k);break;
    						        case 3:printf("%g
    ",(1.0*n/m)/k);break;
    					        } break;
    					}
    					
    				}
    				else
    				{
    					k=rand()%100;
    					printf("%2d=",k);
    					switch(c)
    					{
    						case 0:switch(e)
    					       {
    						        case 0:printf("%d
    ",n+m+k);break;
    						        case 1:printf("%d
    ",n+m-k);break;
    						        case 2:printf("%d
    ",n+(m*k));break;
    						        case 3:printf("%g
    ",n+(1.0*m/k));break;
    					        } break;
    						case 1:switch(e)
    					       {
    						        case 0:printf("%d
    ",n-m+k);break;
    						        case 1:printf("%d
    ",n-m-k);break;
    						        case 2:printf("%d
    ",n-(m*k));break;
    						        case 3:printf("%g
    ",n-(1.0*m/k));break;
    					        } break;
    						case 2:switch(e)
    					       {
    						        case 0:printf("%d
    ",(n*m)+k);break;
    						        case 1:printf("%d
    ",(n*m)-k);break;
    						        case 2:printf("%d
    ",(n*m)*k);break;
    						        case 3:printf("%g
    ",(1.0*n*m)/k);break;
    					        } break;
    						case 3:switch(e)
    					       {
    						        case 0:printf("%g
    ",(1.0*n/m)+k);break;
    						        case 1:printf("%g
    ",(1.0*n/m)-k);break;
    						        case 2:printf("%g
    ",(1.0*n/m)*k);break;
    						        case 3:printf("%g
    ",(1.0*n/m)/k);break;
    					        } break;
    					    }
    				}
    			}
    			printf("
    ");printf("
    ");break;
    			case 4:printf("帮助信息
    ");
    	        printf("您需要输入命令代号来进行操作, 且
    ");
    	        printf("一年级题目为不超过十位的加减法;
    ");
    	        printf("二年级题目为不超过百位的乘除法;
    ");
    	        printf("三年级题目为不超过百位的加减乘除混合题目.
    ");
    			printf("
    ");printf("
    ");break;
    	        case 5:break;
    	        default :printf("Error!!!
    ");
    	        printf("错误操作指令, 请重新输入
    ");printf("
    ");printf("
    ");break;
    		}
    	}
    	printf("程序结束, 欢迎下次使用任意键结束……");
    	return 0;
     } 
    

    2.2.5 Gitee上传截图与链接



    https://gitee.com/li---shuang/LS20199279

  • 相关阅读:
    grep在指定类型的文件中查找字符 (转载)
    关于 android 中 postDelayed方法的讲解 (转载)
    linux下sprintf_s函数的替代(转载)
    两分钟彻底让你明白Android Activity生命周期(图文)!(转载)
    linux C之access函数(转载)
    Android.mk中call all-subdir-makefiles和call all-makefiles-under,$(LOCAL_PATH)的区别(转载)
    adb logcat 查看日志 (转载)
    Android 实用技巧 --- 命令godir (转载)
    emacs版本差异(转载)
    vim的visual可视模式(转载)
  • 原文地址:https://www.cnblogs.com/xiamudaren1/p/12323016.html
Copyright © 2011-2022 走看看