2017-04-03 81 views
0

我正在使用C++並希望做一個2維數組。 10行和3列。第一列是(1到10)。爲第二塔,從用戶(1-10)進入他/她選擇若干導致次表顯示結果如下:在該示例中,用戶的選擇是「4」:C++二維數組乘法表

1x4=4 
2x4=8 
3x4=12 
4x4=16 
5x4=20 
6x4=24 
7x4=28 
8x4=32 
9x4=36 
10x4=40 

我可以在使用for循環時,不會讓用戶的輸入正確計算。

+0

你能分享你的代碼嗎? – Weaboo

+0

歡迎來到stackoverflow.com。請花些時間閱讀[幫助頁面](http://stackoverflow.com/help),尤其是名爲[「我可以問些什麼話題?」]的章節(http://stackoverflow.com/help/)討論話題)和[「我應該避免問什麼類型的問題?」](http://stackoverflow.com/help/dont-ask)。請參閱[tour](http://stackoverflow.com/tour)並閱讀[如何提出良好問題](http://stackoverflow.com/help/how-to-ask)。最後,請學習如何創建[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – Weaboo

回答

0

那麼你可以試試這個來獲取輸出

#include<iostream> 
using namespace std; 
int main() 
{ 
int n;  //To take input 
int table[10][3]; // Table 
cout << "Input a number: "; 
cin >> n; 
// Generating Output 
for (int i = 0; i < 10; i++) 
{ 
    table[i][0] = i + 1; 
    table[i][1] = n; 
    table[i][2] = table[i][0] * table[i][1]; 
} 

for (int i = 0; i < 10; i++) 
{ 
    cout << table[i][0] << " * " << table[i][1] << " = " << table[i][2]<<endl; 
} 
return 0; 
} 

輸出 enter image description here

+0

是的,謝謝我看到我沒有做的事。 – CMR

+0

@cmrflorida不客氣,請批准答案並投票表決。謝謝:) – Weaboo

+0

我是這個網站的新手。我絕對贊同你的答案,但我在哪裏投票呢?再次感謝! – CMR

0

解決:一切似乎是現在的工作!代碼如下:

#include <iostream> 
    #include<cstdlib> 
    #include<iomanip> 
    #include <ctime> 
    using namespace std; 

    void displayTable(int table[10][3]); 
    bool testMe(int testTable[10][3]); 
    void createTables(int testTable[10][3], int ansTable[10][3], int 
usersChoice); 
    bool AllAnswersAreTested(bool tested[10]); 
    void gradeMe(int testTable[10][3], int ansTable[10][3]); 
    void displayMenu(); 

    int main() 
    { 
     srand(time(NULL)); 
     int userInput = 0; 
     int tableChoice = 0; 
     int myTable[10][3] = {0}; 
     int testTable[10][3]; 
     int ansTable[10][3]; 

     bool tested = false; 

     do 
     { 
      displayMenu(); //Display the menu of choices 
      cin >> userInput; 
      cout << endl; 

      switch (userInput) //Validate menu choices 1-4 
      { 
      case 1: //Display a users choice of table 
       displayTable(myTable); 
       break; 
      case 2: //Test user on users choice of table 
       cout << "What times table test would you like to take? > "; 
       cin >> tableChoice; 
       createTables(testTable, ansTable, tableChoice); 
       tested = testMe(testTable);   
       if (tested) 
       { 
        gradeMe(testTable, ansTable); 
       } 
       break; 
      case 3: //Display a new table of the users choice 
       displayTable(myTable); 
       break; 
      case 4: //Quit program menu option 
       cout << "Program ending.\n"; 
       return 0; 
      default: //Invalid entry 
       cout << "You entered an invalid item number. Please enter a number from 1 to 4.\n"; 
       cout << endl; 
     } 

    } while (userInput != 4); 

     return 0; 
    } 

    void displayTable(int myTable[10][3]) 
    { 
     int num; //initialize local variables 

     //Ask the user what times table they would like to review 
     cout << "What times table would you like to review?" << endl;; 
     cout << "Please enter a value from 1 to 12 > \n"; 
     cout << "\n"; 
     cin >> num; 
     cout << endl; 

     for (int i = 0; i < 10; i++) 
     { 
     myTable[i][0] = i + 1; 
     myTable[i][1] = num; 
     myTable[i][2] = myTable[i][0] * myTable[i][1]; 
     } 
      for (int i = 0; i < 10; i++) 
      { 
      cout << setw(3)<< myTable[i][0] << " * " << myTable[i][1] << " = " << myTable[i][2] << endl; 
      } 
     cout << endl; 
    } 

    void createTables(int testTable[10][3], int ansTable[10][3], int usersChoice) 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      testTable[i][0] = i + 1; 
      testTable[i][1] = usersChoice; 
      testTable[i][2] = 0; 

      ansTable[i][0] = i + 1; 
      ansTable[i][1] = usersChoice; 
      ansTable[i][2] = usersChoice * (i + 1); 
     } 
    } 

    bool testMe(int testTable[10][3]) 
    { 
     bool tested[10] = { false, false, false, false, false,false, false, false, false, false }; 

     while (!AllAnswersAreTested(tested)) 
     { 
      int index = rand() % 10; 
      if (tested[index] == false) 
      { 
       int randomNum = testTable[index][0]; 
       int tableChoice = testTable[index][1]; 
       int answer; 
       cout << "What is " << randomNum << " X " << tableChoice << " = "; 
       cin >> answer; 
       testTable[index][2] = answer; 
       tested[index] = true; 
      } 
     } 
     return true; 
    } 

    bool AllAnswersAreTested(bool tested[10]) 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      if (tested[i] == false) 
      { 
       return false; 
      } 
     } 
     return true; 
    } 

    void gradeMe(int testTable[10][3], int ansTable[10][3]) 
    { 
     int correctAnswers = 0; 
     for (int i = 0; i<10; i++) 
     { 
      if (testTable[i][2] == ansTable[i][2]) 
      { 
       correctAnswers++; 
      } 
     } 
     int score = (correctAnswers * 10); 

     if (score == 100) 
     { 
      cout << "You passed the test! PERFECT SCORE!!" << endl; 
      cout << endl; 
     } 
     else if (score >= 70) 
     { 
      cout << "You passed the test. Your Score is: "; 
      cout << score; 
      cout << endl; 
     } 
     else if (score < 70) 
     { 
      cout << "You did not pass the test. Your Score is: "; 
      cout << score; 
      cout << endl; 
     } 
    } 

    //Display the menu function 
    void displayMenu() 
    { 

     cout << "       Multiplication Tables" << endl; 
     cout << endl; 
     cout << "  1.  Review MyTable" << endl; 
     cout << "  2.  Test Me" << endl; 
     cout << "  3.  Enter a New Multiplication Table (1-12)"; 
     cout << "  4.  Quit" << endl; 
     cout << "  Enter a Menu Item > "; 
    }