鱼C论坛

 找回密码
 立即注册
查看: 889|回复: 12

[已解决]求助如何用二维数组创造加减乘除的式子

[复制链接]
发表于 2020-7-23 11:58:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家好!想问下如何用c++二维数组创造以下随机的算数式。

要求可以随机数字(加减最多3位数,乘除最多2位数),可以设定加减乘除,题目数量可设定1-10题。
最后结果写到txt文件中。
求大家指点!!



解决下列问题:

#1.                        #2.
      ___                        ___
   50/50                      49+80


#3.                        #4.
      ___                        ___
   21)91                      3*16


#5.
     ___
   2+44

最佳答案
2020-7-23 12:39:24
本帖最后由 永恒的蓝色梦想 于 2020-7-23 14:05 编辑
EherChen 发表于 2020-7-23 12:26
1-10个题目里可以都是加 都是减 或者可以加减乘除混到一起。我们老师给我们的提示是 exam type = 'a' 's ...


你看这行不行?

  1. #include<fstream>
  2. #include<iostream>
  3. #include<cstdlib>
  4. using namespace std;

  5. constexpr char file_path[] = "C:\\Users\\XXX\\Desktop\\0.txt";
  6. ofstream file(file_path);



  7. void func() {
  8.     switch (rand() & 3) {
  9.         case 0:
  10.             file << rand() % 1000 << '+' << rand() % 1000;
  11.             break;

  12.         case 1:
  13.             file << rand() % 1000 << '-' << rand() % 1000;
  14.             break;

  15.         case 2:
  16.             file << rand() % 100 << '*' << rand() % 100;
  17.             break;

  18.         case 3:
  19.             file << rand() % 100 << '/' << rand() % 99 + 1;
  20.             break;
  21.     }
  22. }



  23. int main() {
  24.     ios::sync_with_stdio(false);

  25.     int mcount;
  26.     cout << "输入题量:";
  27.     cin >> mcount;
  28.     file << "解决下列问题:\n";


  29.     for (int count = 1; count < mcount; count += 2) {
  30.         file << '\n' << '#' << count << ".                        #" << count + 1 << ".\n      ___                        ___\n   ";
  31.         func();
  32.         file << "                      ";
  33.         func();
  34.         file << '\n' << '\n';
  35.     }


  36.     if (mcount & 1) {
  37.         file << '\n' << '#' << mcount << ".\n     ___\n   ";
  38.         func();
  39.     }


  40.     file.close();
  41.     return 0;
  42. }
复制代码
代码里的 file_path 改成自己的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-23 12:00:08 | 显示全部楼层
21)91 是个啥啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-23 12:00:42 | 显示全部楼层

21/91
不好意思打错了!

点评

好的,我看看吧  发表于 2020-7-23 12:01
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 12:20:25 | 显示全部楼层
EherChen 发表于 2020-7-23 12:00
21/91
不好意思打错了!
可以设定加减乘除
是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-23 12:26:13 | 显示全部楼层

1-10个题目里可以都是加 都是减 或者可以加减乘除混到一起。我们老师给我们的提示是 exam type = 'a' 's' 'm' 'd'。 a代表add s代表substract m代表multiply d代表divide
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 12:39:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 永恒的蓝色梦想 于 2020-7-23 14:05 编辑
EherChen 发表于 2020-7-23 12:26
1-10个题目里可以都是加 都是减 或者可以加减乘除混到一起。我们老师给我们的提示是 exam type = 'a' 's ...


你看这行不行?

  1. #include<fstream>
  2. #include<iostream>
  3. #include<cstdlib>
  4. using namespace std;

  5. constexpr char file_path[] = "C:\\Users\\XXX\\Desktop\\0.txt";
  6. ofstream file(file_path);



  7. void func() {
  8.     switch (rand() & 3) {
  9.         case 0:
  10.             file << rand() % 1000 << '+' << rand() % 1000;
  11.             break;

  12.         case 1:
  13.             file << rand() % 1000 << '-' << rand() % 1000;
  14.             break;

  15.         case 2:
  16.             file << rand() % 100 << '*' << rand() % 100;
  17.             break;

  18.         case 3:
  19.             file << rand() % 100 << '/' << rand() % 99 + 1;
  20.             break;
  21.     }
  22. }



  23. int main() {
  24.     ios::sync_with_stdio(false);

  25.     int mcount;
  26.     cout << "输入题量:";
  27.     cin >> mcount;
  28.     file << "解决下列问题:\n";


  29.     for (int count = 1; count < mcount; count += 2) {
  30.         file << '\n' << '#' << count << ".                        #" << count + 1 << ".\n      ___                        ___\n   ";
  31.         func();
  32.         file << "                      ";
  33.         func();
  34.         file << '\n' << '\n';
  35.     }


  36.     if (mcount & 1) {
  37.         file << '\n' << '#' << mcount << ".\n     ___\n   ";
  38.         func();
  39.     }


  40.     file.close();
  41.     return 0;
  42. }
复制代码
代码里的 file_path 改成自己的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-23 12:49:22 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-23 12:39
你看这行不行?

代码里的 file_path 改成自己的。

!!!!!! 好厉害。
不过我们老师要让我们用二维数组。就是每行有两列的问题这样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-23 12:50:06 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-23 12:39
你看这行不行?

代码里的 file_path 改成自己的。

还想请问下“ios::sync_with_stdio(false);”这个是什么意思呀 感觉我们没有学过这部分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 12:51:04 | 显示全部楼层
EherChen 发表于 2020-7-23 12:49
!!!!!! 好厉害。
不过我们老师要让我们用二维数组。就是每行有两列的问题这样。

用二维数组就太麻烦了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 12:51:19 | 显示全部楼层
EherChen 发表于 2020-7-23 12:50
还想请问下“ios::sync_with_stdio(false);”这个是什么意思呀 感觉我们没有学过这部分

就是取消和 stdio 的关联,也可以不加。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-23 13:43:49 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-23 12:51
用二维数组就太麻烦了……

哎 他一定让我们用。 没关系!这样也可以 明天我去问问他! 谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-23 13:44:25 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-23 12:51
就是取消和 stdio 的关联,也可以不加。

感谢回答!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 20:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表