Я начал изучать массивы и только начал практиковаться, но у меня возникли некоторые проблемы с использованием циклов для именования элементов внутри определенного массива.
Я пытался создать этот фрагмент кода, который присваивал бы числа от 1 до 12 (чтобы напоминать месяцы года) для целых чисел внутри массива, вот что я придумал:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int array[12];
for (int i = 0; i < 12;) {
cout << "Month number " << i + 1 << endl;
array[i] = (i++);
}
return 0;
}
Что мне не нравится в этом, так это то, что мне пришлось оставить пространство увеличения / уменьшения внутри цикла for пустым. Сначала я пытался заставить код выглядеть примерно так:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int array[12];
for (int i = 0; i < 12; i++) {
cout << "Month number " << i + 1 << endl;
array[i] = i++;
}
return 0;
}
Но, таким образом, даже если первый элемент массива получился корректным, последующие - нет. Я думаю, что причина этого в том, что i ++ в последнем выражении цикла увеличивает значение i, но я не мог найти способ обойти это без необходимости добавлять еще одну строку с i-- или делать, как я делал в первый код, который я отправил.
Может ли кто-нибудь помочь мне понять, как сделать так, чтобы я мог хранить значение i, увеличенное на единицу, внутри этого конкретного элемента массива, не увеличивая его для всего цикла (если это возможно)?
Я знаю, что есть способы обойти это, точно так же, как я показал в первом коде, который я опубликовал, но это то, что меня беспокоит, и поэтому я хотел бы сделать его более визуально приятным.
Пожалуйста, имейте в виду, что я только начинающий :)
Заранее спасибо за ответы и извините за длинный вопрос.
Редактировать: Видимо, кодировка выглядит так:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int array[12];
for (int i = 0; i < 12; i++) {
cout << "Month number " << i + 1 << endl;
array[i] = i + 1;
}
cout << array[4] << endl;
return 0;
}
делает так, чтобы программа работала правильно и выглядела так, как я хотел, но я не могу понять, почему это происходит: (
Редактировать 2: Очевидно, как указал UnholySheep, я упустил тот факт, что + 1 не изменяет значение целого числа, в то время как ++ делает.
Спасибо всем, кто ответил и объяснил, как работают ++ и +1!