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