Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 14

Вставка в одномерный массив произвольного элемента.

04.05.2010, 20:29. Показов 3118. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Переменные объявлены глобально.
Вот функции для получения рандомного числа и самой вставки.
C++
1
2
3
4
5
6
7
int GetRandom1(int rand_count)
{
using namespace std;
srand(time(0));
a = (rand() % 10)-5;
cout<<"\nRandom= "<<a<<"\n";
}
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
int vstav()
{
int mas_tmp[100];
 
 
    for (q = 0; q < j; q++) {
    mas_tmp[q] = B[q];
    }
 
    bool IfChecked=false;
    for (q = 0; q < j; q++)
     {
     if  ((a>=mini) && (a<=maxi) && (a<=mas[m]))
     { IfChecked=true;
     B[q+1] = mas_tmp[q];
     a = B[q];  }
     else
     { if (IfChecked)
     {
     B[q+1] = mas_tmp[q];
 
     }
     else {B[q] = mas_tmp[q];}
 
      }
     }
cout<<"New massive = ";
for (q = 0; q < j+1; q++)
{cout<<B[q];}
}

Не буду выводить функции ввода массива, нахождения упорядоченности, макса, минимума. Если надо, то выложу.
Допустим, у нас есть массив B[q] из 3 чисел: 1, 2, 3.
Берем рандомное число, например от -5 до 5 и вставляем в массив так, чтобы упорядоченность его не нарушилась. На экран же вывести массив с 4 элементами, 3 от старого, 1 от нового. Нужно сделать даже не на Си++, а на Си. Классы не нужно использовать.
Помогите пожалуйста, исправьте ошибки которые есть у меня во второй функции. В данный момент на экран выводит следующее: 1 2 3 0. А нужно, если например рандом число равно 1, выводить вот это: 1 1 2 3.
Заранее, огромное спасибо!

Добавлено через 58 минут
up ........
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.05.2010, 20:29
Ответы с готовыми решениями:

Вставка элемента в одномерный массив
Задан упорядоченный по возростанию массив целых чисел A и число B. Для числа B найти такое место среди элементов массива А, чтобы после...

Вставка в одномерный массив
Есть массив cin.getline(m_text, 256) Например : &quot;После завтра я еду домой.&quot; Нужно после слова &quot;еду&quot; вставить &quot;на...

Вставка элемента в массив
Требуется вставить в данный массив на данное место данный элемент, сдвинув остальные элементы вправо. Входные данные В первой строке...

5
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
05.05.2010, 16:32
Мой вариант (без функций - под функции, думаю, сами заточите)
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
#include <iostream>
#include <time.h>
using namespace std;
const int SIZE =20;
 
void main()
{
    setlocale (LC_ALL, "Russian");
    int n, i, k, j, a[SIZE], buf;
    srand(time(NULL));
    cout<<"Введите количество элементов: ";
    cin>>n;
    cout<<"Введите "<<n<<" элементов: \n";
    for (i=0; i<n; i++)
        a[i]=rand()%15-5;
    cout<<endl;
    for (i=0; i<n; i++)
        cout<<a[i]<<" ";
    cout<<endl;
    k=rand()%10-5;
    cout<<"\nk: "<<k<<endl;
 
    for (i=0; i<n; i++)
        for(j=n-1; j>i; j--)
            if (a[j-1]>a[j])
            {
                buf=a[j-1];
                a[j-1]=a[j];
                a[j]=buf;
            }
    cout<<"\nУпорядоченный массив: \n";
    for (i=0; i<n; i++)
        cout<<a[i]<<" ";
    cout<<endl; 
 
    for (i=0; i<n; i++)
    {
        if (k<a[0])
        {
            for (j=n; j>0; j--)
                a[j]=a[j-1];
            n++;
            a[0]=k;
            break;
        }
        if (k>a[n-1])
        {
            a[n]=k;
            n++;
            break;
        }
        if (a[i]<=k&&a[i+1]>=k)
        { 
            for (j=n; j>i; j--)
                a[j]=a[j-1];
            n++;
            a[i+1]=k;
            break;
        }
    }
            
    cout<<"\nМассив: \n";
    for (i=0; i<n; i++)
        cout<<a[i]<<" ";
    cout<<endl; 
}
1
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 14
05.05.2010, 18:01  [ТС]
спасибо огромное, буду разбираться

Добавлено через 15 минут
...
все, получилось, еще раз спасибо
0
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 14
28.05.2010, 15:02  [ТС]
Что бы не создавать новую глупую тему, напишу тут.
Не могу кое-что сделать.
Вообщем есть 5 чисел. Эти числа задаются ЧЕРЕЗ формулы + у них есть индекс от класса, то есть они такие
M.SR,S,SR,T.SR,Ma.SR,Sy.SR
Средние значения для пяти объектов.
Как из них организовать массив?

int Prybil[5] = {M.SR,S,SR,T.SR,Ma.SR,Sy.SR};
пробовал так - не получается....
Помогите пожалуйста!

Добавлено через 49 минут
Кидаю всю программу и задание....

Задание 4. Кот Матроскин владеет стадом коров, а также организовал производство молока, сметаны, творога, масла, сыра. Ежедневно он записывает в текстовый файл дневной сбыт каждого вида продукции, причем цены товара у Матроскина могут изменяться, и цены ему приходится тоже ежедневно записывать. В конце месяца необходимо подвести итог по результатам торговли, чтобы выяснить, какая продукция пользуется наибольшим и наименьшим спросом, а также какая продукция приносит наибольшую и наименьшую прибыль.
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include <math.h>
#include <conio.h>
#include <iostream.h>
#include <cstdlib.h>
#include <ctime>
#include <fstream.h>
 
 
 
 
using namespace std;
 
class params
{
public:
 
 
    double SUM;
    double SR;
 
};
 
 
void main()
{
 
//====ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ И ДНЕЙ=============================================
 
int DAYS;
FILE *fo;
fo = fopen("c:\\laba10.txt", "wt");
fprintf(fo, "Hi! Proverka na rabotosposobnost'\n\n");
 
 
int Moloko[1000], Smetana[1000], Tvorog[1000], Maslo[1000], Syr[1000];
params M,S,T,Ma,Sy;
int i,j;
 
M.SUM=0;
 
 
//======================МОЛОКО=================================================
cout<<"Vvedite sbyt Moloka za 31 den'";
for (i = 0; i < 5; i++)
cin>>Moloko[i];
 
for (i = 0; i < 5; i++)
M.SUM+=Moloko[i];
 
M.SR = M.SUM / 5;
 
fprintf(fo,"MOLOKO: \n");
for(i=0;i<5;i++)
fprintf(fo,"%d ",Moloko[i]);
fprintf(fo,"\nSumma = %d",(int) M.SUM);
fprintf(fo,"\nSredniy Sbyt = %5.2f \n\n\n\n",M.SR);
 
 
for(i=0;i<5;i++)
{cout<<Moloko[i]<<" ";}
cout<<"\nSumma = "<<M.SUM;
printf("\nSredniy Sbyt = %5.2f ",M.SR);
 
//=============================================================================
 
 
//====СМЕТАНА===================================================================
cout<<"\nVvedite sbyt Smetani za 31 den'";
for (i = 0; i < 5; i++)
cin>>Smetana[i];
 
for (i = 0; i < 5; i++)
S.SUM+=Smetana[i];
 
S.SR = S.SUM / 5;
 
fprintf(fo,"SMETANA:\n");       for(i=0;i<5;i++)
fprintf(fo,"%d ",Smetana[i]);
fprintf(fo,"\nSumma = %d",(int) S.SUM);
fprintf(fo,"\nSredniy Sbyt = %5.2f \n\n\n\n",S.SR);
 
 
for(i=0;i<5;i++)
{cout<<Smetana[i]<<" ";}
cout<<"\nSumma = "<<S.SUM;
printf("\nSredniy Sbyt = %5.2f ", S.SR);
 
 
//===ТВОРОГ=====================================================================
cout<<"\nVvedite sbyt Tvoroga za 31 den'";
for (i = 0; i < 5; i++)
cin>>Tvorog[i];
 
for (i = 0; i < 5; i++)
T.SUM+=Tvorog[i];
 
T.SR = T.SUM / 5;
 
for(i=0;i<5;i++)
{fprintf(fo,"%d ",Tvorog[i]);}
fprintf(fo,"\nSumma = %d",(int) T.SUM);
fprintf(fo,"\nSredniy Sbyt = %5.2f \n\n\n\n",T.SR);
fclose(fo);
 
for(i=0;i<5;i++)
{cout<<Tvorog[i]<<" ";}
cout<<"\nSumma = "<<T.SUM;
printf("\nSredniy Sbyt = %5.2f ", T.SR);
 
 
//===МАСЛО=====================================================================
cout<<"\nVvedite sbyt Masla za 31 den'";
for (i = 0; i < 5; i++)
cin>>Maslo[i];
 
for (i = 0; i < 5; i++)
Ma.SUM+=Maslo[i];
 
Ma.SR = Ma.SUM / 5;
 
for(i=0;i<5;i++)
{fprintf(fo,"%d ",Maslo[i]);}
fprintf(fo,"\nSumma = %d",(int) Ma.SUM);
fprintf(fo,"\nSredniy Sbyt = %5.2f \n\n\n\n",Ma.SR);
fclose(fo);
 
for(i=0;i<5;i++)
{cout<<Maslo[i]<<" ";}
cout<<"\nSumma = "<<Ma.SUM;
printf("\nSredniy Sbyt = %5.2f ", Ma.SR);
 
 
 
//======СЫР=====================================================================
cout<<"\nVvedite sbyt Syra za 31 den'";
for (i = 0; i < 5; i++)
cin>>Syr[i];
 
for (i = 0; i < 5; i++)
Sy.SUM+=Syr[i];
 
Sy.SR = Sy.SUM / 5;
 
fprintf(fo,"CblP");
for(i=0;i<5;i++)
fprintf(fo,"%d ",Syr[i]);
fprintf(fo,"\nSumma = %d",(int) Sy.SUM);
fprintf(fo,"\nSredniy Sbyt = %5.2f \n\n\n\n",Sy.SR);
fclose(fo);
 
for(i=0;i<5;i++)
{cout<<Syr[i]<<" ";}
cout<<"\nSumma = "<<Sy.SUM;
printf("\nSredniy Sbyt = %5.2f ", Sy.SR);
//==============================================================================
 
 
cout<<"Poschitaem pribyl...";
 
int*Prybil=new int [256];
 
for (i = 0; i < 5; i++)
Prybil[i] = .SR;
 
//int Prybil[5] = {M.SR,S,SR,T.SR,Ma.SR,Sy.SR};
 
 
 
 
 
 
cout<<"\nEti dannie otpravleny na FILE.. Dalee\n\n";
getch();
 
}
Добавлено через 5 минут
В задании не учитывается сбыт продукции, то есть спрос на нее. Но это неважно, если получится сделать с прибылью, получится и со сбытом
0
 Аватар для Sura
7 / 8 / 3
Регистрация: 23.05.2010
Сообщений: 87
28.05.2010, 15:57
Как из них организовать массив?

int Prybil[5] = {M.SR,S,SR,T.SR,Ma.SR,Sy.SR};
пробовал так - не получается....
Humff, можно попробовать так: создать массив и каждому элементу присвоить значение...правда это громоздко
1
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 14
28.05.2010, 15:59  [ТС]
Да, я так уже и начал делать. И классы отпустил, что ужасно. Ну ничего, у мен клиентов нету, препод любое примет, главное чтобы работало
Все.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2010, 15:59
Помогаю со студенческими работами здесь

Вставка элемента в массив
Вставить число k перед всеми элементами массива, которые больше k.

Вставка нового элемента в массив
В одномерном массиве, элементы которого - целые числа, произвести следующие действия:Вставить новый элемент после всех элементов, кратных...

Gcc вставка элемента в двумерный массив
Как вставить элемент в массив, заполненный random числами ? ms= 0 получается нечто другое... =============================== ...

Вставка нового элемента в массив (дополнить код)
Здравствуйте, нужна помощь. Суть такова имеется Куча, и туда нужно Вставить новый элемент, код имеется но не такой как надо :( Сделал, и...

Вставка заданного числа в массив после k-го элемента
Написать программу, вставляющую заданное число m в целочисленный массив A после k-го элемента. Число для вставки m и номер k-го элемента...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru