这个作业属于哪个课程 | 班级链接 |
---|---|
这个作业要求在哪里 | 作业链接 |
这个作业的目标 | 熟悉使用git命令,理解代码用途 |
其他参考文献 | C语言rand和srand用法详解 |
作业正文 | 本篇博客 |
1.1 设计思路和遇到的问题
- 设计思路:用for循环取十道题目,符号用rand的取值来随机选取,随机数也同理用rand生成,用srand和时间来取不同的随机数,添加到已有菜单中。
遇到的问题:开始用int来添加rand函数,导致十个题目完全相同,后来改用直接取rand,解决问题。
1.2程序结果截图
1.3程序代码
#include<stdio.h> #include <stdlib.h> #include <time.h> void one() { printf(":)\n"); printf("\n"); printf("现在是一年级题目:\n"); printf("操作完成\n\n"); srand((int)time(0)); int i; for(i=1;i<=10;i++) { if(rand()%2==1) { printf("%d + %d =__\n",rand() % (10),rand() % (10)); } else printf("%d - %d =__\n",rand() % (10),rand() % (10)); } } void two() { printf(":)\n"); printf("\n"); printf("现在是二年级题目:\n"); printf("操作完成\n"); srand((int)time(0)); int i; for(i=1;i<=10;i++) { if(rand()%2==1) { printf("%d * %d =__\n",rand() % (101),rand() % (101)); } else printf("%d / %d =__\n",rand() % (101),rand() % (101)+1); } } void three() { printf(":)\n"); printf("\n"); printf("现在是三年级题目:\n"); printf("操作完成\n"); srand((int)time(0)); int i; for(i=1;i<=10;i++) { if(rand()%17==0) printf("%d + %d + %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==1) printf("%d + %d - %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==2) printf("%d + %d * %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==3) printf("%d + %d / %d=__\n",rand() % (101),rand() % (101),rand() % (101)+1); else if(rand()%17==4) printf("%d * %d / %d=__\n",rand() % (101),rand() % (101),rand() % (101)+1); else if(rand()%17==5) printf("%d * %d - %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==6) printf("%d * %d * %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==7) printf("%d / %d / %d=__\n",rand() % (101),rand() % (101)+1,rand() % (101)+1); else if(rand()%17==8) printf("%d / %d - %d=__\n",rand() % (101),rand() % (101)+1,rand() % (101)); else if(rand()%17==9) printf("%d - %d - %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==10) printf("%d - %d + %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==11) printf("%d * %d + %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==12) printf("%d / %d + %d=__\n",rand() % (101),rand() % (101)+1),rand() % (101); else if(rand()%17==13) printf("%d - %d * %d=__\n",rand() % (101),rand() % (101),rand() % (101)); else if(rand()%17==14) printf("%d - %d / %d=__\n",rand() % (101),rand() % (101),rand() % (101)+1); else printf("%d / %d * %d=__\n",rand() % (101),rand() % (101)+1,rand() % (101)); } } void mistake() { printf("Error!\n"); printf("错误操作指令,请重新输入\n"); printf("\n"); } void four() { printf("\n"); printf("帮助信息\n"); printf("你需要输入命令代号来进行操作,且\n"); printf("一年级题目为不超过十位数的加减法;\n"); printf("二年级的题目为不超过百位数的乘除法;\n"); printf("三年级的题目为不超过百位的加减乘除的混合题目.\n\n"); } int main() { printf("======口算生成器======\n"); printf("欢迎使用口算生成器:\n\n"); printf("帮助信息\n"); printf("您需要输入命令代号来进行操作,且\n"); printf("一年级的题目为不超过十位数的加减法;\n"); printf("二年级的题目为不超过百位数的乘除法:\n"); printf("三年级的题目为不超过百位数的加减乘除的混合题目.\n\n"); printf("操作列表:\n"); printf("1)一年级 2)二年级 3)三年级\n"); printf("4)帮助 5)退出程序\n"); printf("请输入操作:"); int n; scanf("%d", &n); while (1) { if (n == 5) { break; } switch (n) { case 1: one(); break; case 2: two(); break; case 3: three(); break; case 4: four(); break; default: mistake(); break; } printf("操作列表:\n"); printf("1)一年级 2)二年级 3)三年级\n"); printf("4)帮助 5)退出程序\n"); printf("请输入操作:"); n = 0; scanf("%d", &n); } printf(":)\n"); printf("\n"); printf("程序结束,欢迎下次使用,按任意键结束"); getchar(); return 0; }
1.4Gitee上传截图与链接
solokill的主页
来源:https://www.cnblogs.com/solokill/p/12294733.html