Создание и заполение массива на Си

Поделиться
HTML-код
  • Опубликовано: 12 авг 2018
  • Объявление одномерного массива целых чисел.
    Заполнение индексами и реверсивными индексами.
    Специфические заполнения
    Курс молодого бойца по информатике (Язык Си).
    cs.mipt.ru/c_intro

Комментарии • 35

  • @user-iu6vd8jb5n
    @user-iu6vd8jb5n 3 года назад +8

    Прекрасный преподаватель !

  • @SardorXorazmiy
    @SardorXorazmiy Год назад

    "Дикие числа" - прикольное и хорошое название.

  • @user-zu5oi2qc2g
    @user-zu5oi2qc2g 4 года назад +1

    Спасибо вам огромное!

  • @sergeystal15
    @sergeystal15 4 года назад

    я такого еще не видел, выражения в квадратных скобках. Спасибо.

  • @lordpapich3374
    @lordpapich3374 6 месяцев назад

    Спасибо большое, легко и просто объяснил

  • @nataliasalyaeva4688
    @nataliasalyaeva4688 5 лет назад +31

    Не могли бы вы пронумеровать лекции по си? Приходится играть в угадайку "что я пропустила?" спасибо огромное за лекции!

  • @recreationreally4382
    @recreationreally4382 4 года назад +2

    Можно использовать запятую:
    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;

  • @kg4050
    @kg4050 8 месяцев назад +1

    Доброго дня! Подскажите, пожалуйста, каким образом можно заданное число разделить на отдельные цифры, внести их в массив, а после в самом массиве расположить в порядке убывания? Очень много видео было просмотрено, много статей прочитано, но так ничего и не получается.

  • @maria_ramo
    @maria_ramo 2 года назад +1

    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 целочисленного типа. Но мне так понятнее))
    Спасибо большое, Тимофей, за столь полезные видео.

    • @allex6829
      @allex6829 Год назад

      Интересная задумка, 15 минут вдуплял как работает, просто гениально, спасибо

  • @olgapetrova7588
    @olgapetrova7588 Год назад

    Тимофей, добрый день! Есть ли у вас видео как найти максимальное/минимальное число из текстового файла?

  • @borissherbakov4011
    @borissherbakov4011 4 года назад +1

    Ты крутой

  • @user-ts2kr6hf5h
    @user-ts2kr6hf5h Год назад

    👍👍👍

  • @zzarryadd
    @zzarryadd 3 года назад +2

    а если N - размер массива не константа и ее нужно вводить, то как быть?

    • @Westerden
      @Westerden Год назад

      Никак, N должна всегда быть постоянная const

  • @crocus161
    @crocus161 3 года назад

    А можно ли сделать так чтоб числа в массиве записались в обратную сторону:
    for(int I = N; I > 0; I-){A[k] = k; }

    • @programer8
      @programer8 3 года назад

      for (int i = N - 1; i >= 0; i--)
      A[i] = i;
      заполнение массива справо на лево от N-1 до 0

  • @pulatovmirjamol
    @pulatovmirjamol 4 года назад

    Добрый день //Заменить наибольшие элементы элементов в массиве A (n) нулями.// как будет

  • @user-gh3bs7xk1h
    @user-gh3bs7xk1h 2 года назад

    Как же помогает.

  • @codemonkey2190
    @codemonkey2190 4 месяца назад

    Так инициализировать массив нулями появилась возможность начиная со стандарта C99. В ANSI C такое невозможно.

  • @user-np6gi2ls5o
    @user-np6gi2ls5o Год назад +1

    Всем привет, учу с++ 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

  • @recreationreally4382
    @recreationreally4382 4 года назад

    Не N - i -1, а (N - 1) - i. Т.е. вы начинаете с последнего индекса: N-1.

  • @pavelrepnikov6316
    @pavelrepnikov6316 5 лет назад +1

    прога=Ctrl+c,Ctrl+v

  • @vitaliypolyakov8805
    @vitaliypolyakov8805 3 года назад +4

    Задача хорошая. Но !!! Если 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++;

  • @user-gm9fy4iz6r
    @user-gm9fy4iz6r 6 месяцев назад

    почему ++i, а не i++???

  • @user-fq1rn8tk9y
    @user-fq1rn8tk9y 11 месяцев назад

    Здравствуйте. Я совсем начинающая, и не понимаю, почему сначала в квадратных скобках мы пишем число элементов массива, а потом оно заменяется индексами, и компьютер это понимает =,= а я нет

    • @Serjious_m
      @Serjious_m 6 месяцев назад

      Может книжку почитать?

  • @user-rw4gn5dv5l
    @user-rw4gn5dv5l 4 года назад +2

    ставьте лайки под коментарий

  • @pulatovmirjamol
    @pulatovmirjamol 4 года назад

    Даны 3 одномерных массива: A [10], B [10], C [10]. Необходимо определить количество положительных элементов в каждом массиве до первых 0 элементов. //как можно решат

  • @recreationreally4382
    @recreationreally4382 4 года назад +3

    Разбиение задачи на простые называется мудреным словом декомпозиция.

  • @user-bd3xh3nn2l
    @user-bd3xh3nn2l 3 года назад +1

    ошибочка вышла ломовейшая в последнем заполнении. Не 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;
    }