这个作业属于哪个课程 | <a href="https://edu.cnblogs.com/campus/zswxy/CST2019-1/"target=_blank">《c语音程序设计》 |
---|---|
这个作业要求在哪里 | <a href="https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10272"target=_blank">《C语言寒假大作战03 》 |
我在这个课程目标是 | tand函数的用法和知识的复习,使用数组 |
参考文献 | <a href="https://blog.csdn.net/lvyibin890/article/details/80141412"target=_blank">《c语言rand函数的运用》<a href="https://blog.csdn.net/lengyuezuixue/article/details/88090026"target=_blank">《C语言srand的作用》<a href="https://www.runoob.com/cprogramming/c-function-time.html"target=_blank">《c语言time函数的运用》 |
设计思路和遇到的问题
问题:不知道rand的用法和作用。
设计思路:利用数组和rand的生成随机数来随机生产符号,在用if来判断符号后面是否可以有0,来完成除法中的规则。
程序截图:
一年级
二年级
三年级
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void Operationlist();
void firstgrade();
void secondgrade();
void gradethree();
void help();
void qiut();
void error();
int menu()
{
printf("========== 口算生成器 ==========
欢迎使用口算生成器 :
");
help();
Operationlist();
int n;
scanf("%d",&n);
return n;
}
int main(void)
{
int i=menu();
int flag=1;
while(flag==1){
switch(i){
case 1:firstgrade();break;
case 2:secondgrade();break;
case 3:gradethree();break;
case 4:help();break;
case 5:printf("
程序结束, 欢迎下次使用
任意键结束……");qiut();break;
default:error();break;
}
Operationlist();
scanf("%d",&i);
}
return 0;
}
void Operationlist()
{
printf("
操作列表:
1)一年级 2)二年级 3)三年级
4)帮助 5)退出程序
请输入操作>");
}
void firstgrade()
{
int i,t,x,randomnumber1,randomnumber2;
char symbol;
printf("
现在是一年级的题目:
生产题目个数:");
scanf("%d",&i);
srand((unsigned)time(NULL));
for(x=0;i>x;x++){
t=rand()%2;
if(t==0){
symbol='+';
}
else{
symbol='-';
}
randomnumber1=rand()%10,randomnumber2=rand()%10;
printf("%d %c %d =
",randomnumber1,symbol,randomnumber2);
}
}
void secondgrade()
{
int i,t,x,randomnumber1,randomnumber2;
char symbol;
printf("
现在是二年级的题目:
生产题目个数:");
scanf("%d",&i);
srand((unsigned)time(NULL));
for(x=0;i>x;x++){
t=rand()%2;
if(t==0){
symbol='*';
}
else{
symbol='/';
}
if(symbol=='/'){
randomnumber1=rand()%100,randomnumber2=rand()%100+1;
}
else{
randomnumber1=rand()%100,randomnumber2=rand()%100;
}
printf("%d %c %d =
",randomnumber1,symbol,randomnumber2);
}
}
void gradethree()
{
int i,t1,t2,x,randomnumber1,randomnumber2,randomnumber3;
char symbol1,symbol2;
char symbol[4]={'+','-','*','/'};
printf ("
现在是三年级的题目:
生产题目个数:");
scanf("%d",&i);
srand((unsigned)time(NULL));
for(x=0;i>x;x++){
t1=rand()%4;
t2=rand()%4;
symbol1=symbol[t1];
symbol2=symbol[t2];
if(symbol1=='/'&&symbol2=='/'){
randomnumber1=rand()%100,randomnumber2=rand()%100+1,randomnumber3=rand()%100+1;
}
else{
if(symbol1!='/'&&symbol2=='/'){
randomnumber1=rand()%100,randomnumber2=rand()%100,randomnumber3=rand()%100+1;
}
else{
if(symbol1=='/'&&symbol2!='/'){
randomnumber1=rand()%100,randomnumber2=rand()%100+1,randomnumber3=rand()%100;
}
else{
randomnumber1=rand()%100,randomnumber2=rand()%100,randomnumber3=rand()%100;
}
}
}
printf("%d %c %d %c %d=
",randomnumber1,symbol1,randomnumber2,symbol2,randomnumber3);
}
}
void help()
{
printf("
帮助信息
您需要输入命令代号来进行操作,
且一年级题目为不超过十位的加减法;
二年级题目为不超过百位的乘除法;
三年级题目为不超过百位的加减乘除混合题目.
");
}
void error()
{
printf("
Error!!!
错误操作指令, 请重新输入
");
}
void qiut()
{
exit(0);
}
Gitee上传截图与链接
截图
码云
git