Вопрос задан 07.07.2023 в 16:04. Предмет Информатика. Спрашивает Малков Макс.

Найдите ошибку в коде с++. Пожалуйста, СРОЧНО!!! ДАМ 30!!! #include using namespace std; int

main() { int x, k = 0; int a,K,N, b; cout << "vvedite N "<< endl; cin>> N; cout << "vvedite K "<< endl; cin>> K; do{ for (int i = 1; i <= x; i++) if (x % i == 0 ) k++; if (k<=K) b++; } while(a<=N && a<=1); cout << b; }
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Никулин Богдан.

Ответ:

Снизу

Объяснение:

Во первых в #include ты не объявляешь никакую из библиотек:

<bits/stdc++.h> <iostream> и т.д.

Мой код вот:

#include <bits/stdc++.h>

using namespace std;

int main() {

int n,k;

cout << "vvedite n, potom k";

cin >> n >> k;

int ans = 0,col = 0;

for(int i = 1;i <= n;i++) {

   for(int j = 1;j <= i;j++) {

       if(i % j == 0) {

           col++;

       }

       if(col > k) {

           break;

       }

   }

   if(col > k) {

       col = 0;

   } else {

       ans++;

       col = 0;

   }

}

cout << ans;

}

Мы создаём цикл в цикле где первый перебирает все числа от 1 до N, а второй все числа от 1 до i и смотрит делится или нет. Хотя можно сделать до j в квадрате. Надеюсь помог.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

В данном коде есть несколько ошибок:

  1. Необходимо добавить директиву #include <iostream> для использования потокового ввода-вывода.
  2. Переменная x не инициализирована перед использованием в цикле for. Возможно, вы забыли ввести значение для x.
  3. Переменная a не инициализирована перед использованием в условии цикла do-while. Возможно, вы хотели использовать переменную N вместо a.
  4. В условии цикла do-while имеется ошибка, так как проверка a<=1 бессмысленна. Скорее всего, вы хотели использовать b<=1 для проверки, сколько чисел имеет не более K делителей.
  5. Переменная b не инициализирована перед использованием в цикле do-while. Необходимо инициализировать ее значением 0 перед циклом.

Исправленный код:

cpp
#include <iostream> using namespace std; int main() { int x, k = 0; int a, K, N, b = 0; cout << "vvedite N: "; cin >> N; cout << "vvedite K: "; cin >> K; do { cout << "vvedite x: "; cin >> x; for (int i = 1; i <= x; i++) { if (x % i == 0) k++; } if (k <= K) b++; k = 0; // Сбрасываем счетчик делителей для следующей итерации a++; // Увеличиваем счетчик чисел } while (a <= N); cout << b; return 0; }

Обратите внимание, что я добавил ввод значения для переменной x, чтобы цикл do-while имел смысл. Также, после каждой итерации внутреннего цикла for, счетчик k сбрасывается в 0 перед следующей итерацией, чтобы корректно подсчитывать делители для каждого нового числа.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос