Изменение элементов
Элемент массива можно и изменить. Напишите имя массива и индекс в квадратных скобках, как при чтении элемента, и присвойте новое значение с помощью =, как переменной:
int scores[] = {80, 92, 75, 60, 88};
scores[2] = 79;
printf("%d %d %d\n", scores[1], scores[2], scores[3]);Это выведет:
92 79 60Теперь у элемента с индексом 2 значение 79, а прежнего 75 больше нет. Ничего не вставлялось и не сдвигалось: в массиве по-прежнему пять элементов, а остальные остались прежними.
Следите, чтобы вместо = не получилось ==. Инструкция scores[2] == 79; только сравнивает два значения и ничего не меняет. Сообщения об ошибке не будет: программа работает, а элемент просто сохраняет старое значение.
Элемент ведёт себя как переменная своего типа, поэтому с ним работают и +=, -=, ++ и --. В игре три игрока начинают с тремя жизнями каждый:
int lives[] = {3, 3, 3};
lives[0]--;
lives[2] += 2;
printf("%d %d %d\n", lives[0], lives[1], lives[2]);Это выведет:
2 3 5lives[0]--; отняла одну жизнь у первого игрока, а lives[2] += 2; дала третьему игроку две дополнительные жизни. У второго по-прежнему три.
Задание
- 1
Тимур ответил на бонусный вопрос. Под строкой вывода напишите инструкцию, которая с помощью
+=прибавляет5к баллам Тимура — второму элементу. - 2
Судьи нашли ошибку в баллах Павла: у него должно быть
25. Ниже напишите инструкцию, которая меняет третий элемент на25. - 3
Затем выведите баллы ещё раз так же, например скопировав строку вывода. Теперь вывод показывает их до и после изменений:
12 7 30 12 12 25