int j = 0; for (int i = 0; i < N; ++i) if (i % 2 == 0) { A[i] = j; j += 1; } for (int i = 0; i < N; ++i) if (i % 2 != 0) { A[i] = j; j += 1; } Код получился больше, и пришлось ввести еще одну переменную j целочисленного типа. Но мне так понятнее)) Спасибо большое, Тимофей, за столь полезные видео.
Можно использовать запятую: int i; for(i=0; i< N/2; i++) A[2*i]=i, A[2*i+1]=i+N/2; Чуточку магии: int i, i2, N_2=N/2; for(i=0; i< N_2; i++) i2=2*i, A[i2]=i, A[i2+1]=i+N_2;
Доброго дня! Подскажите, пожалуйста, каким образом можно заданное число разделить на отдельные цифры, внести их в массив, а после в самом массиве расположить в порядке убывания? Очень много видео было просмотрено, много статей прочитано, но так ничего и не получается.
Всем привет, учу с++ 2 дня и решил выполнить такое задание: создать массив со случайными уникальными числами. Можете проверить: #include #include int main() { using namespace std; srand(time(NULL)); const int a = 10;//количество элементов const int b = 10;//разброс int arr[a]{}; int i = 0;
for (int i = 0; i < a; i++) { arr[i] = rand() % (b+1); }
Здравствуйте. Я совсем начинающая, и не понимаю, почему сначала в квадратных скобках мы пишем число элементов массива, а потом оно заменяется индексами, и компьютер это понимает =,= а я нет
Задача хорошая. Но !!! Если N нечетно, то программа делает не то, что надо. Запустите N = 7. В цикле условие, i < N/2, т.е. i = 2 - последнее значение. 2*i = 4. a[6] вообще не вычисляется, оно содержит мусор! Для того, чтобы следователь этой логике, нужно N/2 заменить на .... N/2 + N % 2. Но это слишком сложно. Неудобно такую программу читать, исправлять. Значит, не надо так делать. А проще всего эту задачу решить, пройдя сначала по четным, а затем по нечетным элементам массива, и во время этих двух проходов присваиваемую величину наращивать. Вот так: int count = 0; for(int i = 0; i < N; i += 2) a[i] = count++; for(int i = 1; i < N; i += 2) a[i] = count++;
Даны 3 одномерных массива: A [10], B [10], C [10]. Необходимо определить количество положительных элементов в каждом массиве до первых 0 элементов. //как можно решат
ошибочка вышла ломовейшая в последнем заполнении. Не n/2+i а 3+i. Вот правильно: #include #include #define N 8 int main() { int A[N] = {0}; for(int i = 0; i < N/2; i++) { A[2*i] = i; A[2*i+1] = 3+i; } for(int i = 0; i < N; i++) printf("%d ", A[i]); return 0; }
Прекрасный преподаватель !
int j = 0;
for (int i = 0; i < N; ++i)
if (i % 2 == 0)
{
A[i] = j;
j += 1;
}
for (int i = 0; i < N; ++i)
if (i % 2 != 0)
{
A[i] = j;
j += 1;
}
Код получился больше, и пришлось ввести еще одну переменную j целочисленного типа. Но мне так понятнее))
Спасибо большое, Тимофей, за столь полезные видео.
Интересная задумка, 15 минут вдуплял как работает, просто гениально, спасибо
"Дикие числа" - прикольное и хорошое название.
Спасибо большое, легко и просто объяснил
Не могли бы вы пронумеровать лекции по си? Приходится играть в угадайку "что я пропустила?" спасибо огромное за лекции!
@ Благодарю!
Можно использовать запятую:
int i;
for(i=0; i< N/2; i++) A[2*i]=i, A[2*i+1]=i+N/2;
Чуточку магии:
int i, i2, N_2=N/2;
for(i=0; i< N_2; i++) i2=2*i, A[i2]=i, A[i2+1]=i+N_2;
я такого еще не видел, выражения в квадратных скобках. Спасибо.
Доброго дня! Подскажите, пожалуйста, каким образом можно заданное число разделить на отдельные цифры, внести их в массив, а после в самом массиве расположить в порядке убывания? Очень много видео было просмотрено, много статей прочитано, но так ничего и не получается.
Спасибо вам огромное!
Тимофей, добрый день! Есть ли у вас видео как найти максимальное/минимальное число из текстового файла?
Всем привет, учу с++ 2 дня и решил выполнить такое задание: создать массив со случайными уникальными числами.
Можете проверить:
#include
#include
int main()
{
using namespace std;
srand(time(NULL));
const int a = 10;//количество элементов
const int b = 10;//разброс
int arr[a]{};
int i = 0;
for (int i = 0; i < a; i++)
{
arr[i] = rand() % (b+1);
}
for(int n=0;n
а если N - размер массива не константа и ее нужно вводить, то как быть?
Никак, N должна всегда быть постоянная const
Переписывать компилятор
спасибо
Так инициализировать массив нулями появилась возможность начиная со стандарта C99. В ANSI C такое невозможно.
Захардкодил 🤟
Добрый день //Заменить наибольшие элементы элементов в массиве A (n) нулями.// как будет
спасибо за все
Ты крутой
Здравствуйте. Я совсем начинающая, и не понимаю, почему сначала в квадратных скобках мы пишем число элементов массива, а потом оно заменяется индексами, и компьютер это понимает =,= а я нет
Может книжку почитать?
А можно ли сделать так чтоб числа в массиве записались в обратную сторону:
for(int I = N; I > 0; I-){A[k] = k; }
for (int i = N - 1; i >= 0; i--)
A[i] = i;
заполнение массива справо на лево от N-1 до 0
👍👍👍
Как же помогает.
Не N - i -1, а (N - 1) - i. Т.е. вы начинаете с последнего индекса: N-1.
Задача хорошая. Но !!! Если N нечетно, то программа делает не то, что надо. Запустите N = 7. В цикле условие, i < N/2, т.е. i = 2 - последнее значение. 2*i = 4. a[6] вообще не вычисляется, оно содержит мусор! Для того, чтобы следователь этой логике, нужно N/2 заменить на .... N/2 + N % 2. Но это слишком сложно. Неудобно такую программу читать, исправлять. Значит, не надо так делать.
А проще всего эту задачу решить, пройдя сначала по четным, а затем по нечетным элементам массива, и во время этих двух проходов присваиваемую величину наращивать. Вот так:
int count = 0;
for(int i = 0; i < N; i += 2)
a[i] = count++;
for(int i = 1; i < N; i += 2)
a[i] = count++;
почему ++i, а не i++???
прога=Ctrl+c,Ctrl+v
Даны 3 одномерных массива: A [10], B [10], C [10]. Необходимо определить количество положительных элементов в каждом массиве до первых 0 элементов. //как можно решат
Разбиение задачи на простые называется мудреным словом декомпозиция.
ставьте лайки под коментарий
ошибочка вышла ломовейшая в последнем заполнении. Не n/2+i а 3+i. Вот правильно:
#include
#include
#define N 8
int main()
{
int A[N] = {0};
for(int i = 0; i < N/2; i++)
{
A[2*i] = i;
A[2*i+1] = 3+i;
}
for(int i = 0; i < N; i++)
printf("%d
", A[i]);
return 0;
}