C语言寒假大作战03
|||
---|:--😐---:
这个作业属于哪个课程|班级链接
这个作业要求在哪里|作业要求
这个作业的目标|使用函数生成随机数
作业正文|此篇博客
其他参考文献|C 库函数 - rand()
2.2.2 设计思路和遇到的问题
设计思路:用两组随机数+一组随机运算符号
心路历程:感觉已经习惯了不会做的那种懵——自己找思路,看参考文献——慢慢的找思路——写出来高兴
遇到的问题:1.一开始用两组随机数,想的是用两个随机数函数,然后一直不晓得写另一个函数
解决方法:参考别人的代码,发现用的是函数啊,再一次调用就不欧克了吗
2.我的那个题目的符号一直没有变化
解决方法:因为我控制符号变化的变量没有写到for语句中
3.在编写三年级的题目时,我的那个两个符号随机变化不会
解决方法:参考别人的代码,用两个switch语句,然后我自己也想出来了,就是用for循环嵌套,第一个for循环来写第一个符号,第二个for循环来写第二
个符号的变化。
2.2.3 程序结果截图



2.2.4 程序代码
include<stdio.h>
include<stdlib.h>
include <time.h>
void yinianji()
{
int y,i;
printf("<执行操作:)\n");
printf("\n");
printf("\n");
printf("现在是一年纪题目:\n");
printf("请输入生成题目数目:");
scanf("%d",&y);
printf("<执行操作:)\n");
printf("\n");
char op;
int n;
srand(time(0));
for(i=1;i<=y;i++)
{
n=rand()%2;
if(n0)
{
op='+';
printf("%d %c %d = ___\n",rand ()%10,op,rand()%10);
}
if(n1)
{
op='-'; printf("%d %c %d = ___\n",rand()%10,op,rand()%10);
}
}
}
void ernianji()
{
int e,i;
printf("<执行操作:)\n");
printf("\n");
printf("\n");
printf("现在是二年纪题目:\n");
printf("请输入生成题目数目:");
scanf("%d",&e);
printf("<执行操作:)\n");
printf("\n");
char op;
int n;
srand(time(0));
for(i=1;i<=e;i++)
{
n=rand()%2;
if(n0)
{
op='*';
printf("%d %c %d = ___\n",rand()%101,op,rand()%101);
}
if(n1)
{
op='/';
printf("%d %c %d = ___\n",rand()%101,op,rand()%(101)+1);
}
}
}
void sannianji()
{
int s,i,b,j;
printf("<执行操作:)\n");
printf("\n");
printf("\n");
printf("现在是三年纪题目:\n");
printf("请输入生成题目数目:");
scanf("%d",&s);
printf("<执行操作:)\n");
printf("\n");
char ch,ch2;
for(i=0;i<s;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);
}
}
void help()
{
printf("\n");
printf("帮助信息\n");
printf("您需要输入命令代号来进行操作,且\n");
printf("一年级题目为不超过十位数的加减法;\n");
printf("二年级的题目为不超过百位数的乘除法;\n");
printf("三年级的题目为不超过百位的加减乘除的混合题目.\n");
printf("\n");
}
void tuichuchengxu()
{
printf("程序结束,欢迎下次使用,按任意键结束");
getchar();
}
void error()
{
printf("Error!\n");
printf("错误操作指令,请重新输入\n");
printf("\n");
}
int main()
{
int opt=-1;
while(opt !=5)
{
printf("========== 口算生成器 ==========\n");
printf("欢迎使用口算生成器 :\n");
printf("\n");
printf("\n");
printf("帮助信息\n");
printf("您需要输入命令代号来进行操作, 且\n");
printf("一年级题目为不超过十位的加减法;\n");
printf("二年级题目为不超过百位的乘除法;\n");
printf("三年级题目为不超过百位的加减乘除混合题目.\n");
printf("\n");
printf("\n");
printf("操作列表:\n");
printf("1)一年级 2)二年级 3)三年级\n");
printf("4)帮助 5)退出程序\n");
printf("请输入操作>");
scanf("%d",&opt);
switch(opt)
{
case 1:
yinianji();
break;
case 2:
ernianji();
break;
case 3:
sannianji();
break;
case 4:
help ();
break;
case 5:
tuichuchengxu();
break;
default:
error();
break;
}
}
}



浙公网安备 33010602011771号