Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2011, 19:29   #1
annka93
Новичок
Джуниор
 
Регистрация: 30.10.2011
Сообщений: 1
По умолчанию Вставка нулей в массив. Сумма элементов между нулями. Язык С++

Задача состоит в следующем: надо создать массив и вставить вместо двух случайных элементов "нули". После посчитать сумму элементов между "крайними нулями".
Например если был массив
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
Вставку двух нулей делаем для того, чтобы быть уверенными, что у нас есть хотя бы два "крайних нулевых" элементов.

Код:
#include <iostream.h> 
#include <windows.h>  
#include <time.h>
 
int main()
{
    int n,sum=0;
        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;
}
В (1) вставляла следующий код:
Код:
srand(time(NULL));
i=rand()%9-3;
for (i = 0; i < n; i++)
zero[i=rand()%9-3;]=0;
В (2) вставляла следующее:
Код:
for(i=0;i<n;i++)
{
cout<<a[i];
if(a[i]==0)
 sum+=a[i];
}
Пока кроме генерирования массива ничего не работает.
annka93 вне форума Ответить с цитированием
Старый 30.10.2011, 19:50   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

"Вставить два нуля вместо случайных элементов в массиве длины n" = "Сгенерировать случайное число от 0 до n-1, запомнить, обнулить соответствующий элемент в исходном массиве, сгенерировать случайное число от 0 до n-2, если оно больше либо равно предыдущему, увеличить его на 1 (так мы избавляемся от опасности сгенерировать два одинаковых числа), обнулить соответствующий элемент в исходном массиве"

Код:
//Для каждого элемента массива с индексом от 0 до n
for(i=0;i<n;i++)
{
//Вывести a[i]
cout<<a[i];
//Если a[i] равно нулю
if(a[i]==0)
  //Прибавить a[i] к sum (т.е., фактически, sum не меняется)
 sum+=a[i];
}
//Очевидно, по окончании значение sum будет таким же, как и в начале
Напишите код, в результате выполнения которого в переменную start заносился бы индекс первого нуля в массиве (подсказка: использовать оператор break); напишите код, в результате которого в переменную finish заносился бы индекс последнего нуля в массиве (подсказка: творчески изменить (i=0;i<n;i++)); напишите код, в результате которого в переменную sum заносилась бы сумма всех элементов, чей индекс больше start, но меньше finish, при условии, что start>finish.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать в массив Z подряд семь нулевых элементов массива R,состоящего из N элементов.(Язык QBasic) Лиза) Помощь студентам 0 11.01.2011 16:02
Вставка элементов в одномерный массив DarkDeidara Помощь студентам 17 03.12.2010 12:13
Paskal вставка элементов в массив TuuuZ Помощь студентам 5 16.01.2010 12:26
С++ одномерный массив и сумма элементов Blondy Помощь студентам 1 19.11.2009 17:09
Вставка элементов в массив (помогите с алгоритмом) Mclaren Помощь студентам 1 10.11.2009 17:21