Нужно вывести на экран массив [закрыт]

171
16 марта 2019, 10:50

Мне нужно вывести на экран массив и символ, который встречается больше всего в нём.

Мой код:

int main()
{
  const int max_elem = 200000;
  char *array1 = new char(max_elem);
  for (int i = 0; i < max_elem; ++i)
  {
    array1[i] = rand() % 200;
  }
  std::cout << "array -" << array1 << '\n';
  size_t size = sizeof(array1) / sizeof(array1[0]);
   char  find = findCharacter(array1, size);
  std::cout << "find -" << find << '\n';
  return 0;
}

Но не выводится. Что я не так делаю?

findCharacter функция, где я ищу символ. Она правильно работает.

Answer 1

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

  1. Попытка вывести на экран массив случайных символов как строку до добра не доведёт. Во-первых, могут быть нулевые символы, которые просто приведут к остановке дальнейшего вывода (см. нуль-терминированные строки). Во-вторых, имеются непечатные символы, типа перевода строк, звоночков и т.п. Чтобы все эти проблемы решить, надо выводить в нормальном цикле посимвольно, примерно так же как заполняете, и учитывая значение этих символов. Самый простой способ, выводить символ числом, т.е. привести перед выводом к int.

  2. sizeof(array1) / sizeof(array1[0]); такой подход к определению размера массива актуален только для массивов, размер которых задаётся на этапе компиляции, и уж точно не через new, а вида T arr[N]. К тому же совсем не понятно, зачем пытаться вообще вычислить этот размер, если он задан заранее через переменную max_elem.

READ ALSO
Ошибка скачивания файла

Ошибка скачивания файла

Для скачивания файла, я пытался использовать функциию URLDownloadToFile(), текстовый документ и фото, она скивает нормально, но при скачиванииexe файлов...

149
Узнать загрузился ли процесс

Узнать загрузился ли процесс

Возможно ли средствами WinApi узнать, что запущенный процесс полностью загрузился?

132
Сравнение элементов массива и ArrayLIst-a

Сравнение элементов массива и ArrayLIst-a

У меня имеется класс Gene, который трансформирует математическое выражение вида ( x + 3 ) в ,например, массив array={"+","x","3",null,null,

171
API запросы в Java и OAuth 2.0

API запросы в Java и OAuth 2.0

Добрый день, нужно написать то, что позволит подключиться к https://apihh

151