Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170

Массивы: функция rand() и размер массива. Совместимости

23.02.2016, 22:57. Показов 5241. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые программисты! Всех с праздником!)
В общем переписываю одну и ту же программу который раз, ну чуть модифицирую, и сталкиваюсь с одной и той же проблемой, программа по поиску всех наиболее повторяющихся чисел в массиве. А проблема в том, что если я забиваю размер массива случайными числами как a[i]=rand()%10; то все работает отлично, а если я поставлю что-то типа a[i]=rand()%100; получается какая-то бяка, проблема я так понял с рандомом и размером самого массива? Подскажите пожалуйста что у меня не так, и чтоб я мог ставить любой размер массива и любые коэффициенты чисел на рандом и все работало корректно!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include<ctime>
 
void print(const int [], int);//функция вывода
void mode(const int [], int);//функция нахождения наиболее часто встречаемых значений в массиве
void randMassive(int [], int);//функция заполнения массива случайными числами
void sort(int [], int);//функция сортировки массива
 
int main()
{
    setlocale(LC_ALL, "Russian");
    system("mode con cols=100 lines=70");
    srand(time(0));
//-----------------------------------------
    const int arraySize=10;
    int a[arraySize]={0};
//----------------------------------------------------------------------
    randMassive(a, arraySize);//заполняем массив случайными числами
    print(a, arraySize);//вывод массива
    sort(a, arraySize);//сортировка массива
    print(a, arraySize);//вывод массива
    mode(a, arraySize);//нахождение моды
//----------------------------------------------------------------------
    return 0;
}
void randMassive(int a[], int size)//функция заполнения массива случайными числами
{
    for(int i=0; i<size; i++)
    {
        a[i]=rand()%10;
    }
}
 
void mode(const int a[], int size)
{
    int largest=0;
    int mode=0;
    int counter=0;
    int emptyArray[size]={0};
    //-------------------------------------------------------------------
    for(int rating=0; rating<size; rating++)//обнуление массива
    {
        std::cout<<emptyArray[rating]<<" ";
    }
    std::cout<<std::endl;
    for(int i=0; i<size; i++)//подсчет кол-ва повторений чисел в массиве
    {
        emptyArray[a[i]]++;
        std::cout<<emptyArray[a[i]]<<" ";
    }
    std::cout<<std::endl<<"---------------------------"<<std::endl;
    for(int rating=0; rating<size; rating++)//поиск одного наиболее частого повторения значения
    {
        std::cout<<rating<<" - "<<emptyArray[rating]<<std::endl;
        if(emptyArray[rating]>largest){
            largest=emptyArray[rating];
            mode=rating;
            }
    }
    std::cout<<"Наиболее часто встречающиеся значения(числа): ";
    for(int rating=0; rating<size; rating++)//поиск всех наиболее часто повторяемых значений
    {
        if(emptyArray[rating]==largest){
            counter=rating;
            std::cout<<"["<<counter<<"]";
            }
    }
    std::cout<<std::endl;
             std::cout<<"повторы "<<largest<<" раз(а)"<<std::endl;
}   
void sort(int a[], int size)
{
    int hold=0;
    for(int pass=1; pass<size; pass++){
        for(int j=0; j<size; j++)
        if(a[j]>a[j+1]){
            hold=a[j];
            a[j]=a[j+1];
            a[j+1]=hold;}}
            
}
void print(const int a[], int size)
{
    for(int i=0; i<size; i++)
    std::cout<<a[i]<<" ";
    std::cout<<std::endl;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2016, 22:57
Ответы с готовыми решениями:

Функция с применением динамического массива, чтобы размер массива увеличивался по мере необходимости
Ребята, подскажите, кто может, каким образом создать функцию с применением динамического массива, но так, чтобы размер массива увеличивался...

Функция, которая удаляет из целочисленного одномерного массива все, и возвращает новый размер массива
Разработать и испытать функцию, которая удаляет из целочисленного одномерного массива все, и возвращает новый размер массива. #include...

Массивы: Если размер массива неизвестен
Здравствуйте уважаемые программисты! Объясните пожалуйста, как правильно(по стандартам С++) создавать массив, который в процессе работы...

26
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170
25.02.2016, 16:39  [ТС]
Студворк — интернет-сервис помощи студентам
ну хорошо, а как тогда быть если нужно например взять размер массива из main? как его поместить в массив в функции чтоб было по стандартам все...
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.02.2016, 16:42
Выделять память в динамической памяти (new). Или использовать vector.
0
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170
25.02.2016, 16:45  [ТС]
в общем если я еще не изучал вектора или динамическую память, мне только можно для таких случаев использовать размер в виде глобальной константы?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.02.2016, 16:57
Лучший ответ Сообщение было отмечено vikiroy как решение

Решение

Да.
1
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170
25.02.2016, 16:59  [ТС]
Спасибо большое!
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
25.02.2016, 17:03
Цитата Сообщение от vikiroy Посмотреть сообщение
мне только можно для таких случаев использовать размер в виде глобальной константы?
Глобальные, в данном случае, необязательны, можно обойтись константными выражениями в main(). emptyArray ты же можешь и в main() создавать, а в mode() передавать так же, как и первый массив.
1
67 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 170
25.02.2016, 17:06  [ТС]
Глобальные, в данном случае, необязательны, можно обойтись константными выражениями в main(). emptyArray ты же можешь и в main() создавать, а в mode() передавать так же, как и первый массив.
ага...я понял тебя! Спасибо! Так будет даже лучше!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2016, 17:06

Заменить статические массивы на динамические; размер массива запрашивать у пользователя
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; const int n=10; int first, last; //функция сортировки void...

Задача.Массивы.rand.
Всем привет! Учусь на 1 курсе, делаю лабараторные работы.с++ Задача: Дана матрица f из целых малых величин,определить количество особых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru