这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10271 |
这个作业的目标 | 熟练C语言函数应用 |
作业正文 | https://www.cnblogs.com/szy5201314/p/12268352.html |
其他参考文献 | 百度 |
2.1.2 程序截图:
2.2.2 设计思路和遇到的问题
设计思路
根据随机生成随机数,进行四则运算,输出。
遇到的问题
最开始没有正确使用rand()函数。
2.2.3 程序代码
include<stdio.h>
include <stdlib.h>
include <time.h>
void menu(){
printf("操作列表:
1)一年级 2)二年级 3)三年级
4)帮助 5)退出程序
请输入操作> ");
}
void help(){
printf("帮助信息
您需要输入命令代号来进行操作, 且
一年级题目为不超过十位的加减法;
二年级题目为不超过百位的乘除法;
三年级题目为不超过百位的加减乘除混合题目.
");
}
void error(){
printf("Error!!!
错误操作指令, 请重新输入
");
}
void firstgrade(){
srand(time(NULL));
int a,b,i;
char f[2]={'+','-'};
printf("现在是一年级题目:
请输入生成题目的个数:");
scanf("%d",&i);
for(;i>0;i--){
a=rand()%101;
b=rand()%101;
printf("%d %c %d = ___
",a,f[rand()%2],b);
}
printf("
");
}
void secondgrade(){
srand(time(NULL));
int a,b,i;
char f[2]={'','/'},fl;
printf("现在是二年级题目:
请输入生成题目的个数:");
scanf("%d",&i);
for(;i>0;i--){
a=rand()%101;
b=rand()%101;
fl=f[rand()%2];
if(fl'/'&&b0)b=rand()%100+1;
printf("%d %c %d = ___
",a,fl,b);
}
printf("
");
}
void thirdgrade(){
srand(time(NULL));
int a,b,i,c;
char f[4]={'','/','+','-'},d,e;
printf("现在是三年级题目:
请输入生成题目的个数:");
scanf("%d",&i);
for(;i>0;i--){
a=rand()%101;
d=f[rand()%4];
b=rand()%101;
if(d'/'&&b0) b=rand()%100+1;
e=f[rand()%4];
c=rand()%101;
if(e'/'&&c0) c=rand()%100+1;
printf("%2d %c %2d %c %2d = ___
",a,d,b,e,c);
}
printf("
");
}
int main()
{
int a;
printf("========== 口算生成器 ==========
欢迎使用口算生成器 :
");
help();
menu();
do{
scanf("%d",&a);
printf("< 执行操作 >
");
switch (a) {
case 1:firstgrade();break;
case 2:secondgrade();break;
case 3:thirdgrade();break;
case 4:help(); break;
case 5:printf("程序结束, 欢迎下次使用 任意键结束……
");break;
default:error();break;
}
if(a!=5)menu();
}while(a!=5);
return 0;
}