С++ Visual Studio не работает. как исправить
int mint main() {srand(time(0));int n = 0, m = 0, k = 0;std::cin >> n >> m >> k;int arr[n][m]; int zeros[n]; for (int i = 0; i < n; i++)zeros[i] = 0;int zeroIndex{ 0 };int counter{ 0 };bool zeroFound{ false };for (int i = 0; i < n; i++) {zeroFound = false;counter = 0;for (int j = 0; j = k) {zeros[zeroIndex] = i;zeroIndex++;zeroFound = true;}}elsecounter = 0;}printf("n"); }for (int i = 0; i < n; i++){if (zeros[i] != 0)printf("%dn", zeros[i]);}}
cpp
int main()
2. `#include <iostream>` отсутствует. Директива `#include` используется для подключения заголовочных файлов, которые содержат определения стандартных функций и классов. В данном случае, вам необходимо подключить заголовочный файл iostream, чтобы использовать функции std::cin и std::cout. Добавьте следующую строку в начало вашего кода:
cpp
#include <iostream>
3. В строке `printf("n");` должно быть использовано объявление `std::cout` вместо `printf`. `printf` является функцией из языка C, а `std::cout` - это объект потока вывода в языке C++. Замените эту строку на:
cpp
std::cout << std::endl;
4. В строке `printf("%dn", zeros[i]);` также следует использовать `std::cout` вместо `printf`. Замените эту строку на:
cpp
std::cout << zeros[i] << std::endl;
5. В языке C++ массивы переменной длины не поддерживаются. В строке `int arr[n][m];` вам необходимо использовать динамическое выделение памяти с помощью оператора new. Вот как код должен выглядеть с использованием std::vector вместо массивов переменной длины:
cpp
#include <iostream>
#include <vector>
int main()
{
srand(time(0));
int n = 0, m = 0, k = 0;
std::cin >> n >> m >> k;
std::vector<std::vector<int>> arr(n, std::vector<int>(m, 0));
std::vector<int> zeros(n, 0);
int zeroIndex = 0;
int counter = 0;
bool zeroFound = false;
for (int i = 0; i < n; i++)
{
zeroFound = false;
counter = 0;
for (int j = 0; j < m; j++)
{
arr[i][j] = rand() % 2;
if (arr[i][j] == 0)
{
counter++;
if (counter >= k)
{
zeros[zeroIndex] = i;
zeroIndex++;
zeroFound = true;
}
}
else
{
counter = 0;
}
}
if (!zeroFound)
{
counter = 0;
}
}
std::cout << std::endl;
for (int i = 0; i < n; i++)
{
if (zeros[i] != 0)
{
std::cout << zeros[i] << std::endl;
}
}
return 0;
}
Внесенные изменения в код включают в себя исправление ошибок компиляции и обновление кода для использования std::vector вместо массивов переменной длины. После внесения этих изменений код должен успешно скомпилироваться и запуститься в Visual Studio.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет