Math 在减法情况下有问题(在随机生成器中使num3始终大于num4)。有人知道怎么做吗 #包括 #包括 #包括 #包括“formatNumber.h” 使用名称空间std; int main() { 智力选择; 整数num1、num2、num3、num4、num5、num6; 智力问题; 无符号种子=时间(0); srand(种子); cout

Math 在减法情况下有问题(在随机生成器中使num3始终大于num4)。有人知道怎么做吗 #包括 #包括 #包括 #包括“formatNumber.h” 使用名称空间std; int main() { 智力选择; 整数num1、num2、num3、num4、num5、num6; 智力问题; 无符号种子=时间(0); srand(种子); cout,math,random,menu,switch-statement,operator-keyword,Math,Random,Menu,Switch Statement,Operator Keyword,或者,您可以只添加一个if子句来检查较大的数字,如果num4大于num3,则交换它们 或者,您可以始终对num3和num4求和,并将总和用作较大的数字,即num3,然后按原样使用num4 (这在某种程度上相当于在num3中添加一个min/楼层(相当于num4)。有关如何在某个范围内生成随机数,请参阅。) 但是,可能会出现溢出问题。因此,不,第一种方法还是更好。或者,您可以添加一个if子句来检查更大的数字,如果num4大于num3,将它们交换到您应该了解的位置。但正如Tacocate所说,最简单的

或者,您可以只添加一个
if
子句来检查较大的数字,如果
num4
大于
num3
,则交换它们

或者,您可以始终对
num3
num4
求和,并将总和用作较大的数字,即
num3
,然后按原样使用
num4

(这在某种程度上相当于在
num3
中添加一个
min
/
楼层
(相当于
num4
)。有关如何在某个范围内生成随机数,请参阅。)


但是,可能会出现溢出问题。因此,不,第一种方法还是更好。

或者,您可以添加一个
if
子句来检查更大的数字,如果
num4
大于
num3
,将它们交换到您应该了解的位置。但正如Tacocate所说,最简单的事情是生成两个数字,必要时交换它们。
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include"formatNumber.h"
using namespace std;

int main()
{
   int choice;
   int num1, num2, num3, num4, num5, num6;
   int problem;

   unsigned seed = time(0);
   srand(seed);

   cout << "This program will help you learn addition, subtraction,\n";
   cout << "multiplication, and division. Press any key to continue." << endl;
   cin.get();

   do
   {
      cout << "Choose which math you would like to work on." << endl;     
      cout << "--------------------------------------------" << endl;
      cout << "1. Addition\n";
      cout << "2. Subtraction\n";
      cout << "3. Multiplication\n";
      cout << "4. Quit program\n";
      cout << endl;

      cout << "Choose 1,2,3,or 4: ";
      cin >> choice;


      switch(choice)
      {
         case 1:  problem = 0;
                  num1 = rand() % 11;
                  num2 = rand() % 11;

                   while (problem != 999)
                   {
                      cout << "How much is " << num1 << " plus " << num2 << " (999 to exit)? ";
                      cin >> problem;

                      if ( problem == 999 )
                        break;

                      if ( problem == (num1 + num2) )
                      {
                         switch(rand() % 4)
                         {
                           case 0: cout << "Very good!\n";
                                   break;
                           case 1: cout << "Nice work!\n";
                                   break;
                           case 2: cout << "Excellent!\n";
                                   break;
                           case 3: cout << "Keep up the good work!\n";
                                   break;   
                         }

                         num1 = rand() % 11;
                         num2 = rand() % 11;
                      }
                      else
                      {
                        switch(rand() % 4)
                        {
                           case 0: cout << "No. Please try again\n";
                                   break;
                           case 1: cout << "Sorry. That's not it\n";
                                   break;
                           case 2: cout << "No. Don't give up\n";
                                   break;
                           case 3: cout << "Not yet. Keep trying\n"; 
                                   break;
                         cout << "How much is " << num1 << " plus " << num2 << "(999 to exit)? ";
                         cin >> problem;
                        } 

                      }
                    }
                    break;                    
         case 2:  problem = 0;
                  num3 = rand() % 11;
                  num4 = rand() % 11;

                   while (problem != 999)
                   {

                      cout << "How much is " << num3 << " minus " << num4 << " (999 to exit)? ";
                      cin >> problem;

                      if ( problem == 999 )
                        break;

                      if ( problem == (num3 - num4) )
                      {
                         switch(rand() % 4)
                         {
                           case 0: cout << "Very good!\n";
                                   break;
                           case 1: cout << "Nice work!\n";
                                   break;
                           case 2: cout << "Excellent!\n";
                                   break;
                           case 3: cout << "Keep up the good work!\n";
                                   break;   
                         }

                         num3 = rand() % 11;
                         num4 = rand() % 11;
                      }
                      else
                      {
                        switch(rand() % 4)
                        {
                           case 0: cout << "No. Please try again\n";
                                   break;
                           case 1: cout << "Sorry. That's not it\n";
                                   break;
                           case 2: cout << "No. Don't give up\n";
                                   break;
                           case 3: cout << "Not yet. Keep trying\n"; 
                                   break;
                         cout << "How much is " << num1 << " plus " << num2 << "(999 to exit)? ";
                         cin >> problem;
                        }      
                      }
                    }
                    break;   
         case 3: problem = 0;
                  num5 = rand() % 11;
                  num6 = rand() % 11;

                   while (problem != 999)
                   {
                      cout << "How much is " << num5 << " times " << num6 << " (999 to exit)? ";
                      cin >> problem;

                      if ( problem == 999 )
                        break;

                      if ( problem == (num5 * num6) )
                      {
                         switch(rand() % 4)
                         {
                           case 0: cout << "Very good!\n";
                                   break;
                           case 1: cout << "Nice work!\n";
                                   break;
                           case 2: cout << "Excellent!\n";
                                   break;
                           case 3: cout << "Keep up the good work!\n";
                                   break;   
                         }

                         num5 = rand() % 11;
                         num6 = rand() % 11;
                      }
                      else
                      {
                        switch(rand() % 4)
                        {
                           case 0: cout << "No. Please try again\n";
                                   break;
                           case 1: cout << "Sorry. That's not it\n";
                                   break;
                           case 2: cout << "No. Don't give up\n";
                                   break;
                           case 3: cout << "Not yet. Keep trying\n"; 
                                   break;
                         cout << "How much is " << num1 << " plus " << num2 << "(999 to exit)? ";
                         cin >> problem;
                        } 

                      }
                    }
                    break;                   
         case 4: cout << "Thank you and have a good day!\n";
                 break;
         default : cout << "Invalid response! please choose (1,2,3,4,or 5)." << endl;
                   cin >> choice;
     }
  }while ( choice != 4 );  
      cin.get();

      return 0;
}