Как бы я вывел эту таблицу умножения с оператором if?

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

int main()
{
    char response = 'y';
    while (response == 'y')
        do
        {
        const int myarray = 144;
        int thearray[myarray];
        for (int m = 0; m < 12; m++)
        {
            cout << m + 1 << " ";
        }
        cout << endl;
        for (int rown = 1; rown < 11; rown++)
            for (int n = 0; n < 12; n++)
            {
                thearray[(rown * 12) + n] = thearray[n] * (rown + 1);
            }
        if ()
    cout << "Would you like to run the program again? \n"
        << "Enter y for yes or n for no: ";
    cin >> response;
} while (response == 'Y' || response == 'y');
return 0;
}

Смысл этого кода в том, чтобы использовать одномерный массив для создания таблицы умножения. Я считаю, что у меня все правильно закодировано, но другая часть этого назначения - вывод таблицы с использованием оператора if, и я не совсем уверен, как. Может кто-нибудь дать мне руководство, пожалуйста?

1 ответ

Решение

Я не знаю функцию C, но я предполагаю, что она будет работать так (только мыслительный процесс / логика, а не реальный код)

nums = array(1, 2, 3, 4, 5)
output space for left display column of numbers
foreach (nums as header) { // this hopefully builds the top of the table
  output header; // column header
}
for each (nums as row) { // this will go through 1,2,3,4,5 
  if (nums === multiplier) output left row label // i.e "1 | "
  for each (nums as col) {       
    output (row * col) // multiply row * col and display it
  }
}

Нет Если требуется заявление... надеюсь, это поможет. извините, если код не полный, я не программирую на c.

РЕДАКТИРОВАТЬ:

Ради здравомыслия я написал кое-что, что, кажется, работает. Всегда хорошо изучать новые языки:) .... дайте мне знать, что вы думаете.

https://ideone.com/Id9Ax9

Это код, который я придумал, который работал для меня

#include <iostream>
using namespace std;
int main() {
// Define variables
    int nums [5] = { 1, 2, 3, 4, 5};
    // set default values
    string headerRow = "    ";
    string rowLabel = "";
    string currentRow = "";
    string currentVal = "";
    // start the process
    int maxArray = (sizeof(nums)/sizeof(nums[0]));
    for (int i=1; i<=maxArray; i++) { headerRow = headerRow + to_string(i) + "  "; }
    cout << headerRow + "\n"; // Display header row
    cout << "    ---------------\n";
    for (int r=1; r<=maxArray; r++) { // this will cycle through rows 1,2,3,4,5 
        currentRow = "";
        for (int c=1; c<=maxArray; c++) {// this will cycle through columns 1,2,3,4,5 
            if (r == c) {
                rowLabel = to_string(r) + std::string(" | "); 
            }
            currentVal = to_string(c * r) + "  "; // multiply row * col and display it
            currentRow = currentRow + currentVal;
        }    
        cout << rowLabel + currentRow + "\n";
    }
}
Другие вопросы по тегам