欢迎来到LQ的博客

C语言寒假大作战03

 

C语言寒假大作战03

这个作业属于哪个课程班级链接
这个作业的要求 作业链接
这个作业的目标 完善口算题菜单的功能,学习新的库函数-rand()
参考文献 库函数rand
作业正文 此篇博客

2.2.2设计思路和遇到的问题

设计思路:

1.在上一次的作业的基础上添加随机数的概念。

2.利用新接触的rand()函数完成随机生成数,并将其二或其三进行任意的四则运算。

3.完善上次的代码,该减减该加加。

 

心路历程:

自信(想出这个挺简单的,首先要给自己足够的自信心)开始疑惑(rand()函数干吗用的,该怎么用的)略微有些惆怅(rand()是库函数的一种,可以产生随机数,且在rand()的后方加上%MAX确定随机数的范围,从0到MAX,MAX可自定义)

(正确的使用rand()函数写出壹年级和贰年级的情况,叁年级却开始卡壳,我该怎样随机四则运算符号的生成呢?)舒服了(首先定义两个字符型变量,然后再次利用for循环和switch语句配合rand()函数完成对符号的随机化)

 

2.2.3程序结果截图

 

 

 

 

 

 

 

 

 

2.2.4程序代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int help(int m);
int main(void)
{
time_t t;
srand((unsigned) time(&t));
printf("====口算生成器====\n");
printf("欢迎使用此生成器(笑\n");
int a=-1;
int i,m,b,j;
int HELP,EXIT,n,x;
char ch,ch2;
while(a!=0)
{
printf(" \n");
printf(" \n");
printf("操作列表:\n");
printf("1>壹年级    2>贰年级     3>叁年级\n");
printf("4>HELP      5>EXIT\n");
printf("请选择:\n");
scanf("%d",&a);

    switch (a)
{
case 1:
printf("现在是壹年级时间\n");
printf("请给出需要生成的题目个数:");
scanf("%d",&m);
printf("题目如下:\n");
printf("\n");
for(i=0;i<m;i++)
{
b=rand()%2;
if(b==1)
printf(" %d + %d = \n", rand()%11,rand()%11);
else
printf(" %d - %d = \n", rand()%11,rand()%11);
}
break;
case 2:
printf("现在是贰年级时间\n");
printf("请给出需要生成的题目个数:");
scanf("%d",&m);
printf("题目如下:\n");
printf("\n");
for(i=0;i<m;i++)
{
b=rand()%2;
if(b==1)
printf(" %d * %d = \n", rand()%101,rand()%101);
else
printf(" %d / %d = \n", rand()%100+1,rand()%100+1);//小细节,除号后面不能为零。
}
break;
case 3:
printf("现在是叁年级时间\n");
printf("请给出需要生成的题目个数:");
scanf("%d",&m);
printf("题目如下:\n");
printf("\n");
for(i=0;i<m;i++)
{
b=rand()%4;
switch(b)
{
case 0:
ch='+';break;
case 1:
ch='-';break;
case 2:
ch='*';break;
case 3:
ch='/';break;
}
j=rand()%4;
  switch(j)
  {
  case 0:
  ch2='+';break;
  case 1:
  ch2='-';break;
  case 2:
  ch2='*';break;
  case 3:
  ch2='/';break;
}

printf(" %d %c %d %c %d = \n", rand()%101,ch,rand()%100+1,ch2,rand()%100+1);//除号后面不能为零。
}
break;
case 4:
HELP=help(n);
break;
case 5:
printf("程序结束,欢迎下次使用,按任意键结束...\n");
return 0;
default:
printf("ERROR!!!");
}
}

}
int help(int n)
{
printf("\n");
printf("帮助信息:\n");
printf("您需要输入代号命令号来进行操作,另\n");
printf("壹年级的题目很舒服,为不超过十位的加减法\n");
printf("贰年级的题目不难,为不超过百位的乘除法\n");
printf("叁年级的题目在一二年级的基础上升华,为不超过百位的加减乘除混合运算\n");
}

 

2.2.5Gitee上传截图与链接

 

 

 

 

 

 

 

Gitee主页地址:

LQNB的主页

 

posted @ 2020-02-05 20:50  LQNB  阅读(219)  评论(0编辑  收藏  举报