Member 13921348 Ответов: 2

Как добавить каждую N-ю цифру в массив пользовательского ввода в C++ ?


код на c++.
предположим, я ввожу массив и хочу пропустить каждую D-ю цифру и вычислить сумму после того, как оставлю каждую D-ю цифру. Тогда мой код будет таким ?
для(i=0;i<n;i+d)
{
добавить+=i;
}

Что я уже пробовал:

for(i=0;i<n;i+d)
{
add+=i;
}

2 Ответов

Рейтинг:
1

CPallini

Ваш код

  • Не имеет доступа к массиву.
  • Не пропускает все d циклы.
.


Чтобы получить доступ к массиву вы можете проиндексировать его:
sum += a[i]


Чтобы пропустить при каждом d цикл, который вы могли бы использовать if
if ( (i % d) != (d-1) )
{
  // not-skipping code
}


Рейтинг:
0

OriginalGriff

Начните с того, что подумайте о проблеме, которую вам поставил учитель: "код", который вы показываете, не будет работать или даже никогда не закончится.

for (a; b; d)
   c;

a выполняется один раз, перед циклом, и позволяет настроить начальные условия.
b выполняется один раз за цикл, чтобы проверить, должен ли он идти по кругу и выполнять тело (c).
c выполняется один раз каждый раз, когда цикл идет по кругу.
d выполняется сразу после (c) и устанавливает условия для следующего раунда времени.
Например, чтобы вывести пять элементов массива:
for (i = 0; i < 5, i++)
   cout << arr[i];
Но код, который вы показываете, не меняется i во всяком случае, как только вы его инициализируете, так что цикл никогда не закончится.
Это начало бы работать, если бы вы написали это вместо этого:
for (i = 0; i < n; i += d)
Но вы все равно захотите получить доступ к данным массива внутри цикла, а не к значению индекса ...