Как переписать цикл for на цикл do while?
Есть код, который считает элементы с четными номерами и выводит их произведение. Как мне переписать его используя ТОЛЬКО цикл do..while?
int array[100];
int len;
int multi = 1;
cout << "Введите длину массива = ";
cin >> len;
cout << "Введите значения массива = ";
for (int i = 0; i < len; i++)
{
cin >> array[i];
if (array[i] % 2 == 0)
{
multi *= array[i];
}
}
cout << "Произведение элементов с парными номерами = " << multi << endl;
Ответы (2 шт):
Автор решения: AlexGlebe
→ Ссылка
Цикл for можно переписать на while так :
for ( A ; B ; C )
D ;
{ A ;
while ( B ) {
D ;
continu :
C ; } }
А если вам нужно конкретно do while то нужно вручную делать сначала сравнение.
{ A ;
if ( B ) {
do {
D ;
continu :
C ;
} while ( B ) ; } }
ваш пример :
for (int i = 0; i < len; i++)
{
cin >> array[i];
if (array[i] % 2 == 0)
{
multi *= array[i];
}
}
используем do while :
{ int i = 0;
if ( i < len ) {
do {
cin >> array[i];
if (array[i] % 2 == 0)
{
multi *= array[i];
}
continu :
i ++ ;
} while ( i < len ) ; } }
Метка conitinu : потребуется, если в цикле использовалась команда continue ;. Вместо неё нужно делать goto continu ; .