c ++ простая функция для добавления чисел - PullRequest
1 голос
/ 11 марта 2011

Прежде всего, я просто хочу сказать, что я новичок в C ++, и я пытаюсь решить проблему, которая у меня есть, но пока не повезло.Код:

const int MAX = 100;

void funkcija(int niz[], int n, int& poc, int& sko)
{
    for(int i = 0; i < n; i++)
    {
        niz[i] = poc + sko;
    }
}

int main()
{
int niz[MAX];
int start, jump;

cout <<"Start element: ";
cin >> start;

cout <<"Jump element: ";
cin >> jump;

funkcija(niz, MAX, start, jump);

cout << "Ispis pocevsi od " << start << " sa skokom od " << jump << " jest: " << niz[1]<< endl;
getchar();
return 0;
}

Программа должна сделать следующее: она запрашивает у меня стартовый номер.Допустим, я выбрал 15.Затем он запрашивает номер прыжка.Я выбираю 11. Печать должна идти "15, 26, 37, 48, 59, 70, 81, 92".(15 + 11 = 26, 26 + 11 = 37 ...), и он должен печатать все числа до 100, что является моим МАКС.Если я изменю МАКС на 1000, он должен печатать все числа до 1000.

Ответы [ 5 ]

2 голосов
/ 11 марта 2011

Вы всегда устанавливаете одно и то же значение в элементах таблицы: poc + sko.

Вы хотите поместить poc в niz[0], а затем

for(int i = 1; i < n; i++) {
    nit[i] = niz[i-1] + sko;
}
1 голос
/ 11 марта 2011
for(int i = 0; i < n; i++)
{
    niz[i] = poc + sko;
}

Вы говорите, что хотите "15 + 11 = 26, 26 + 11 = 37 ...".

Вы можете подумать, почему этого не происходит?

Для вывода вы выводите только один элемент из вашего массива (второй элемент):

<< niz[1]

1 голос
/ 11 марта 2011

Проблема заключается в цикле for.Цикл не обновляет следующий номер в последовательности.

for(int i = 0; i < n; i++)
{
    niz[i] = poc ;
    poc += sko; // This should be added.
}

Кроме того, условие неверно.Это должно быть poc < n.Зачем вам нужно передавать n, когда у вас есть MAX в качестве глобальной переменной.

0 голосов
/ 11 марта 2011

Кому-нибудь приходило в голову, что третье выражение в цикле for не обязательно должно быть i++? Это конкретное выражение увеличивает i на 1. Если вы хотите увеличить его на какую-то другую величину (например, «прыжковый элемент»), какое выражение вы можете использовать?

0 голосов
/ 11 марта 2011

Если я правильно понял, что вы хотите 100 цифр, код должен выглядеть следующим образом:

void funkcija(int niz[], int n, int poc, int sko)
{
    for(int i = 0; i < n; i++)
    {
        niz[i] = poc;
        poc = poc + sko;
    } 
}

Обратите внимание, что я удалил амперсанды (&) из ваших параметров.Добавление их делает их ссылочными параметрами, что означает, что после возврата функции значения start и jump в вашей функции main () также изменяются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...