Member 12886219 Ответов: 2

У меня есть проблема с использованием цикла


Write a program that prompts an  integer, and write multiplication table from 1 to that number. For example if the integer is 3 the output should be
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 16 18 20
3 6 9 12 15 18 21 24 27 30

Use nested for loops (two for loops one outer loop, one inner loop).


Что я уже пробовал:

#include <iostream>

using namespace std;

int main()
{
    int num ,b,c,d;

  cout <<"Enter an  number to get the  multiplication table from 1 to that number"<<endl;
cin>>num;
for (b=1;b<=num;b++)
{ for(c=1;c<=num;c++)
{ d=b*c;
cout<<d;}
cout<<endl;}

  return 0;
}

CHill60

В чем проблема?

2 Ответов

Рейтинг:
6

Patrice T

Используйте отладчик, позволяя вам видеть, как выполняется ваш код, это поможет вам понять, что не так.
В этом примере каждая строка останавливается на 10, 1 из ваших петель тоже должен останавливаться на 10.

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

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

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


Рейтинг:
14

Kornfeld Eliyahu Peter

В отличие от вашего образца, где вы работаете от 1 до 10 по одной оси и от 1 до н с другой стороны, вы бежите от 1 до н на обеих осях в вашем коде...

Измените внутренний цикл, чтобы он работал до 10, и для удобства чтения добавьте вкладку после каждого напечатанного числа...

#include <iostream>

using namespace std;
 
int main()
{
    int num, b, c, d;
 
    cout << "Enter an  number to get the  multiplication table from 1 to that number" << endl;
    cin >> num;
    
    for (b = 1; b <= num; b++)
    { 
        for(c = 1; c <= 10; c++)
        {
            d = b * c;

            cout << d << "\t";
        }
        cout << endl;
    }

    return 0;
}</iostream>