2017-04-03 53 views
0

私はC++を使用しており、2次元配列を行いたいと考えています。 10行3列。最初の列は(1〜10)です。この例では、ユーザの選択が「4」である:C++ 2次元配列の乗算テーブル

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

私が可能な第2の列では、ユーザーは次のような結果を表示する回表にその結果(1〜10)から数の彼/彼女の選択に入り、 forループを使用するときにユーザーの入力が正しく計算されるようにします。

+0

コードを共有できますか? – Weaboo

+0

ようこそstackoverflow.comへようこそ。 [ヘルプページ](http://stackoverflow.com/help)、特に[ここではどのトピックを聞くことができますか?](http://stackoverflow.com/help/)のセクションを読んでください。 on-topic)と[[どのような種類の質問を避けるべきですか?]](http://stackoverflow.com/help/dont-ask)を参照してください。また、[ツアー](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 > "; 
    }