Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
#1

Помогите доработать код. - C++

30.10.2011, 17:45. Просмотров 398. Ответов 2
Метки нет (Все метки)

Задача состоит в следующем: надо создать массив и вставить вместо двух случайных элементов "нули". После посчитать сумму элементов между "крайними нулями".
Например если был массив
5 4 -1 8 6 4 2 3 3 7 0 -6
И после вставки "нулей" стал таким:
5 4 0 8 6 4 0 3 3 7 0 -6
Получается что сумма будет равна:
8+6+4+0+3+3+7=31
Вставку двух нулей делаем для того, чтобы быть уверенными, что у нас есть хотя бы два "крайних нулевых" элементов.
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
#include <iostream.h> 
#include <windows.h>  
#include <time.h>
 
int main()
{
    int n,proz=1;
    cout <<"Введите количество элементов одномерного массива: ";
    cin >> n;
    cout<<"Сгенерированный массив: ";
    int *a = new int [ n ];
    srand(time(NULL));
    for (int i = 0; i < n; i++)
    {
        a[i] = rand()%9-3;
        cout<<a[i]<<" ";
    }
 
//////////////////////////////////////////////////////////////////////////////////
 Здесь нужен код для вставки 2-x  нулей в случайных местах в массиве (1)
//////////////////////////////////////////////////////////////////////////////////
 Здесь вычислить сумму между крайними нулевыми элементами (2)
//////////////////////////////////////////////////////////////////////////////////
    return 0;
}
Добавлено через 52 секунды
В (1) вставляла следующий код:

C++
1
2
3
4
srand(time(NULL));
i=rand()%9-3;
for (i = 0; i < n; i++)
zero[i=rand()%9-3;]=0;
В (2) вставляла следующее:

C++
1
2
3
4
5
6
for(i=0;i<n;i++)
{
cout<<a[i];
if(a[i]==0)
 sum+=a[i];
}
Но ничего не работает!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 17:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите доработать код. (C++):

Атоморфные числа, С++, помогите доработать код - C++
Сама задача выглядит так: среди чисел от 1 до n найти все атоморфные числа ( т.е. числа которые при возведении их в квадрат совпадают с...

Создать программу-счётчик слов (помогите доработать код) - C++
Эта программа видит на входе &quot;Ма-ма -мыла раму. Рама-, мыла маму. Мама была рамой. А у Саши 0 - шуры муры. А у Шуры нет&quot; а на выходе должно...

Массив. Помогите доработать код, подскажите где ошибки. - C++
Сама задача проста: Есть массив, состоящий из натуральных чисел, поделенный на 4 части, необходимо переставить блоки ( верхний правый с...

База данных. Помогите доработать сортировку! - C++
Доброе время суток!) Нужна помощь! Создал базу данных. ФИО, число, месяц, год рождения, адресс. Создал массив (10 элементов) данных...

Скатерть Улама - помогите доработать прогу :) - C++
Есть код программы, но что-то не могу заставить его работать в Visual Studio 2008.. int simple(int n) { int i; int ret=1; ...

Доработать код - C++
Нужно что-бы программа не заменяла многократные пробелы однократным , а просто удаляла их. (Должно быть в виде функции) #include...

2
Сыроежка
Заблокирован
30.10.2011, 18:11 #2
Цитата Сообщение от annka93 Посмотреть сообщение
Задача состоит в следующем: надо создать массив и вставить вместо двух случайных элементов "нули". После посчитать сумму элементов между "крайними нулями".
Например если был массив
5 4 -1 8 6 4 2 3 3 7 0 -6
И после вставки "нулей" стал таким:
5 4 0 8 6 4 0 3 3 7 0 -6
Получается что сумма будет равна:
8+6+4+0+3+3+7=31
Вставку двух нулей делаем для того, чтобы быть уверенными, что у нас есть хотя бы два "крайних нулевых" элементов.
[/CPP]

Добавлено через 52 секунды
В (1) вставляла следующий код:

C++
1
2
3
4
srand(time(NULL));
i=rand()%9-3;
for (i = 0; i < n; i++)
zero[i=rand()%9-3;]=0;
В (2) вставляла следующее:

C++
1
2
3
4
5
6
for(i=0;i<n;i++)
{
cout<<a[i];
if(a[i]==0)
 sum+=a[i];
}
Но ничего не работает!
Как я понял из описания задачи, вам надор только два элемента сделать равными нулю. Поэтому
не понятно, почему вы используете цикл?! Кроме того, так как у вас n элементов,то наверное случайный индекс нужно выбирать следующим выражением

C++
1
rand % n;
0
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 18:44  [ТС] #3
Цитата Сообщение от Сыроежка Посмотреть сообщение
Как я понял из описания задачи, вам надор только два элемента сделать равными нулю. Поэтому
не понятно, почему вы используете цикл?! Кроме того, так как у вас n элементов,то наверное случайный индекс нужно выбирать следующим выражением

C++
1
rand % n;
А можете показать на примере?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 18:44
Привет! Вот еще темы с ответами:

Доработать код ежедневника - C++
В общем есть работа : ежедневник и следующая часть кода: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include...

Подскажите как доработать код - C++
Нужно посчитать копейки. от 1-й до 99-ти. Суть в том что бы посчитать в порядке 1-копейка, 2,3,4-копейки, 5-20-копеек, 21-копейка,...

Нужно немного доработать код - C++
#include &lt;iostream&gt; using namespace std; int main() { int n ; cin &gt;&gt; n; int M = (n-1) + (n-2); ...

Доработать код записной книжки - C++
Помагите плыз доработать записную книжку вот код: #include &lt;iostream&gt; #include &lt;locale.h&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.