C语言寒假大作战04
这个作业属于哪个课程 | 班级链接 |
---|---|
这个作业要求在哪里 | 作业链接 |
这个作业的目标 | 完善菜单程序并学会了rand()函数的用法 |
作业正文 | 本次博客 |
参考文献 | 百度文章 |
2.2.2 设计思路和遇到的问题 | |
设计思路:在作业3的基础上考虑答案 |
遇到的问题:3年级的题目对于+,-,*,/混合运算没有优先级,是按照从左往右算的,修改代码把自己搞得头晕目眩
2.2.3 程序结果截图
2.2.4 程序代码
include<stdio.h>
include<stdlib.h>
include<time.h>
int help(int a);
int menu(int a);
int error(int a);
int main(void)
{
int i, n;
time_t t;
srand((unsigned)time(&t));
printf("口算生成器\n");
printf("欢迎使用口算生成器 : \n\n");
printf("帮助信息\n");
printf("您需要输入命令代号来进行操作,且\n一年级题目为不超过十位的加减法:\n二年级题目为不超过百位的乘除法:\n三年级题目为不超过百位的加减乘除混合题目.\n\n");
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n4)帮助 5)退出程序\n请输入操作>\n<执行操作 😃\n\n");
int a, b, e;
char c, ch1;
c = '+';
double k1, k2, k;
double h, h1;
h = 0;
scanf_s("%d%d", &a, &n);/n为题目个数/
switch (a)
{
case 1:printf("现在是一年级题目:\n");
for (i = 0; i < n; i++)
{
k1 = rand() % 10;
k2 = rand() % 10;
b = rand() % 2;
if (b == 1)
{
c = '+';
k = k1 + k2;
printf("%.0f %c %.0f = %g \n", k1, c, k2, k);
}
else
{
c = '-';
k = k1 - k2;
printf("%.0f %c %.0f = %g \n", k1, c, k2, k);
}
}
break;
case 2:printf("现在是二年级题目:\n");
for (i = 0; i < n; i++)
{
k1 = rand() % 10;
k2 = rand() % 10;
b = rand() % 2;
if (b == 1)
{
c = '';
k = k1 * k2;
printf("%.0f %c %.0f = %g \n", k1, c, k2, k);
}
else
{
if (k2 == 0)
{
k2 = k2 + 1;
c = '/';
k = k1 / k2;
printf("%.0f %c %.0f = %g \n", k1, c, k2, k);
}
else
{
c = '/';
k = k1 / k2;
printf("%.0f %c %.0f = %g \n", k1, c, k2, k);
}
}
}
break;
case 3:printf("现在是三年级题目:\n");
for (i = 0; i < n; i++)
{
k1 = rand() % 100;
k2 = rand() % 100;
b = rand() % 4;
switch (b)
{
case 0:ch1 = '+'; k = k1 + k2; break;
case 1:ch1 = '-'; k = k1 - k2; break;
case 2:ch1 = ''; k = k1 * k2; break;
case 3:ch1 = '/'; k = k1 / k2; break;
}
if (k2 == 0)
{
k2 = k2 + 1;
}
e = rand() % 4;
h1 = rand() % 100;
switch (e)
{
case 0:c = '+'; h = k + h1; break;
case 1:c = '-'; h = k - h1; break;
case 2:c = '', h = k * h1; break;
case 3:c = '/'; h = k / h1; break;
}
if (ch1 == '+' && c == '')
{
h = k1+(k2 * h1);
}
if (ch1 == '-' && c == '*')
{
h = k1-(k2 * h1);
}
if (ch1 == '+' && c == '/')
{
if (h1 == 0)
{
h1 = h1 + 1;
h = k1+(k2 / h1);
}
else
{
h = k1+(k2 / h1);
}
}
if (ch1 == '-' && c == '/')
{
if (h1 == 0)
{
h1 = h1 + 1;
h = k1-(k2 / h1);
}
else
{
h = k1 - (k2 / h1);
}
}
printf("%g %c %g %c %g = %g \n", k1, ch1, k2, c, h1, h);
}
break;
case 4:help(a); break;
case 5:printf("程序结束,欢迎下次使用\n任意键结束... ..."); break;
default:error(a); break;
}
return 0;
}
int help(int a)
{
printf("帮助信息:\n您需要输入命令代号来进行操作,且\n");
printf("一年级题目为不超过十位的加减法:\n二年级题目为不超过百位的乘除法:\n三年级题目为不超过百位的加减乘除混合题目.\n\n");
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n4)帮助 5)退出程序\n请输入操作>\n<执行操作 😃\n\n");
return 0;
}
int menu(int a)
{
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n4)帮助 5)退出程序\n请输入操作>\n<执行操作 😃\n\n");
return 0;
}
int error(int a)
{
printf("Error!!!\n错误的指令,请重新输入");
return 0;
}
2.2.5 Gitee上传截图与链接
1.5主页地址
个人主页