М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Clay1353
Clay1353
12.07.2022 14:05 •  Информатика

найти ошибку, если такая имеется При выполнении в массиве всё равно выводятся кратные 5 или трем числа

Нужно удалить из массива В (50) все элементы, кратные 3 или 5:

#include

#include

#define N 50

int main()

{

int B[N]={};

int del=0;

srand(17);

for(int i=0;i
{

B[i]=rand()%51;

}

for(int i=0;i
printf("%d ",B[i]);

for(int i=0;i<(N-del);i++)

{

if((B[i]%5==0)||(B[i]%3==0))

{

del++;

for(int j=i;j<(N-del);j++)

{

B[j]=B[j+1];

}

}

}

printf("\nDeleted: %d\n",del);

for(int i=0;i<(N-del);i++)

printf("%d ",B[i]);

}
Заранее благодарю

👇
Ответ:
feitlol
feitlol
12.07.2022

После удаления уменьши переменную i на 1.

Объяснение:

Во-первых, у тебя при отображении на сайте часть кода пропала (то, что начинается с < ), но это ты сам разберешься, у тебя-то верно написано.

Логическая ошибка в том, что если были числа 3, 5, 10, 12, то ты удаляешь 3, а потом переходишь к следующему числу. Но пятерка при этом сместилась на место тройки, и ты ее пропускаешь. Так же ты потом пропустишь 12.

Лечится это так: после удаления уменьши переменную i на 1, тогда следующий шаг цикла начнется с того же элемента массива (точнее, с того, который оказался на месте удаленного).

4,6(40 оценок)
Открыть все ответы
Ответ:

Алгоритм - система последовательных операций.

Конечность алгоритма - означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений; конечность.

Понятность алгоритма - означает, что алгоритм должен содержать только те команды, которые входят в набор команд, который может выполнить конкретный исполнитель.

Точность алгоритма - детерминированность (определенность, точность, однозначность) . Это свойство заключается в том, что при задании одних и тех же исходных данных несколько раз алгоритм будет выполняться абсолютно одинаково и всегда будет получен один и тот же результат.

4,8(54 оценок)
Ответ:
ekaterinah05
ekaterinah05
12.07.2022
#include <iostream>

using namespace std;

int gcd(int a, int b);

int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
   
    int n;
   
    cin >> n;
   
    for (int i = 0; i < n; ++i)
    {
        int a, b, c, d;
       
        scanf("%d/%d+%d/%d=", &a, &b, &c, &d);
       
        int num = a * d + b * c;
        int den = b * d;
       
        int cur_gcd = gcd(num, den);
       
        num /= cur_gcd;
        den /= cur_gcd;
       
        cout << num;
        if(den != 1)
            cout << '/' << den;
        cout << endl;
    }
   
    fclose(stdin);
    fclose(stdout);
    return 0;
}

int gcd(int a, int b)
{
    if(a == 0)
        return b;
    return gcd(b % a, a);
}
4,8(18 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ