У меня проблемы с некоторыми входными данными для моей таблицы сложения / умножения, и я надеюсь найти некоторую помощь в исправлении этой ситуации. Я начну с публикации того, что у меня есть для программы.
Код выглядит следующим образом:
#include <iostream>
using namespace std;
void die() {
cout << "BAD INPUT!" << endl;
exit(1);
}
int main() {
const int ADD = 1;
const int MULTIPLY = 2;
const int MAX_SIZE = 20;
int choice = 0, min = 0, max = 0;
cout << "Choose:\n";
cout << "1. Addition Table\n";
cout << "2. Times Table\n";
cin >> choice;
if (!cin) die();
if (choice != ADD and choice != MULTIPLY) die();
cout << "Please enter the smallest number on the table:\n";
cin >> min;
if (!cin) die();
cout << "Please enter the largest number on the table:\n";
cin >> max;
if (!cin) die();
if (min > max) die();
if (max - min >= MAX_SIZE) die();
if (choice == ADD) {
for (int i = 0; i <= max; i++) {
if (i == 0)
cout << '+';
else
cout << i;
cout << '\t';
for (int j = min; j <= max; j++) {
cout << i + j << '\t';
}
cout << '\n';
}
}
if (choice == MULTIPLY) {
for (int i = min; i <= max; i++) {
if (i == min) {
cout << 'X';
else
cout << i;
cout << '\t';
for (int j = min; j <= max; j++) {
cout << i * j << '\t';
}
cout << '\n';
}
}
}
Теперь вот ошибки, которые я получаю из этого кода, которые я не могу исправить. Во-первых, при выполнении таблицы MUlTIPLY с min = 1, max = 1, я получаю:
X 1
когда я должен получить (я верю)
X 1
1 1
Во-вторых, при выполнении таблицы MULTIPLY с min = 1, max = 12 я получаю:
X 1 2 3 4 ... 12
2 2 4 6 8 ... 24
3 3 6 9 12 ... 36
когда я должен получить
X 1 2 3 4 ... 12
1 1 2 3 4 ... 12
2 2 4 6 8 ... 24
3 3 6 9 12 ... 36
И, наконец, при использовании таблицы ADD с min = 21, max = 40 я не могу опубликовать весь код, так как это беспорядок, но в основном столбцы / строки выглядят следующим образом:
+ 21 22 23 24 25 ...
5
1
6
2
7
3
8
Когда очевидно, что код должен выводить строки и столбцы равными 21 - 40 равномерно. Как вы можете видеть в последнем примере, мои строки выводятся правильно, но почему-то мои столбцы представляют собой полный искаженный беспорядок.
Я некоторое время сидел и смотрел на этот код, и не могу решить эти проблемы под рукой. Может ли кто-нибудь помочь привести меня в правильном направлении? Я очень ценю любую помощь и подсказки :)