Загрузка...

Задачи Си++

Тема в разделе C/C++ создана пользователем lugenlord 17 сен 2017. 390 просмотров

Загрузка...
  1. lugenlord
    lugenlord Автор темы 17 сен 2017 20 11 мар 2017
    Крч только начал учить си++, 1курс все дела, задают задачи, я вроде бы учу, понимаю что да как, но логически правильно составить решение к задаче не могу. Не получается расписать код и все такое.
    Задали "задан одномерный массив из n, n меньше или равен 10000, каждый элемент массива меньше или равно n, подсчитать сколько раз встречается каждый элемент". И я попытался написать, но у меня получилась какая-то дичь.
    Код
    #include <iostream>
    using namespace std;

    int main()

    {
    setlocale(LC_ALL, "rus");
    int i = 0;
    const int size = 10000;
    char str[10000];
    int arr[size];
    arr[I] = rand() % 9999 + 1;
    cout « arr[I] « endl;

    int elem[10000] = { 0 };

    for (int i = 0; i < size; i++)
    elem[str[I]]++;

    for (i = 0; i < size; i++)
    if (elem[I])
    cout « "Элемент '" « int(i) « "' встречается " « elem[I] « " раз" « endl;
    system("pause");
    return 0;
    }[/I][/I][/I][/I][/I]
     
    17 сен 2017 Изменено
  2. Andrew_Linberg
    Andrew_Linberg 17 сен 2017 :curator: 12 215 3 авг 2017
    А зачем ты адрес первой ячейки меняешь то?
     
  3. lugenlord
    lugenlord Автор темы 17 сен 2017 20 11 мар 2017
    Да не знаю, вообще запутался, я еще применять все это не научился
     
  4. Andrew_Linberg
    Andrew_Linberg 17 сен 2017 :curator: 12 215 3 авг 2017
    Ну я вроде как понял что ты хотел сделать. Ты хотел заполнить массив случайными числами. А вместо этого менял адрес первой ячейки массива на случайное число от 1 до 10000
    Вместо: arr = rand()%9999+1
    Это:
    for (int i=0; i<10000; i++)
    arr=rand()%9999+1;
    Потому чтонадо числа для каждой ячейки, а не только для одной. Чтобы использовать рандом надо подключить библиотеку:
    #inlcude <cmath>
    Вместо: elem[str]++;
    Это: elem[arr]++;
    Убери char[str]
    Там где int elem[10000] = {0} не уверен что в твоем компиляторе заполнится нулями.
     
  5. lifeisagame
    lifeisagame 17 сен 2017 ... 141 14 июл 2017
    подключи библиотеку для system("pause")
     
  6. lifeisagame
    lifeisagame 17 сен 2017 ... 141 14 июл 2017
    cout « "Элемент '" « int(i) « "' встречается " « elem « " раз" « endl;
    В ковычках латиницой пиши
     
Top