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

原文地址:https://www.cnblogs.com/xiamudaren1/p/12323016.html