Консультация № 146124
05.10.2008, 19:23
0.00 руб.
0 2 2
Уважаемые господа, помогите!!!!!
Разработать алгоритм и программу обработки одномерных массивов в соответствии с индивидуальным заданием. Массив заполнить с
помощью генератора случайных чисел в интервале [-50; 50] в количестве 15 элементов.
Вычислить сумму нечетных значений элементов массива А, а элементы кратные 2 заменить нулями.

Обсуждение

Неизвестный
06.10.2008, 01:12
общий
это ответ
Здравствуйте, Shah-ilya!
Не совсем понятно нужны ли вам граничные числа -50 b 50, т.к. назвали Вы множество интервалом, но обозначение от отрезка, я делал исходя из отрезка [-50, 50]
Компилировалось в MS VC++

Приложение:
#include <stdlib.h>
#include <iostream>

using namespace std;

// получить случайное на отрезке [-50, 50]
int inline getRandom(int min, int max)
{
return min + rand() % (max - min + 1);
}

void printMassiv(const int* data, int size)
{
for(int idx = 0; idx < size; ++idx){
if(idx != 0)
cout << ", "; // перед первым элементом не надо запятой
cout << data[idx];
}
cout << endl;
}

#define ELEMENTS_COUNT 15

int main(int argc, char* argv[])
{
// динамический массив на заданное количество элементов
int* massiv = new int[ELEMENTS_COUNT];
// заполняем случайными значениями
for(int idx = 0; idx < ELEMENTS_COUNT; ++idx)
massiv[idx] = getRandom(-50, 50);

printMassiv(massiv, ELEMENTS_COUNT);

int summ = 0;
for(int idx = 0; idx < ELEMENTS_COUNT; ++idx)
if(massiv[idx] % 2 == 0) // если остаток от деления на 2 равен нулю, значит число чётное
massiv[idx] = 0;
else
summ += massiv[idx];

printMassiv(massiv, ELEMENTS_COUNT);

cout << "Odd numbers summ = " << summ << endl;

system("pause");
return 0;
}
Неизвестный
06.10.2008, 11:19
общий
это ответ
Здравствуйте, Shah-ilya!
Код с комментариями в приложении!


Приложение:
//определяет ввод-вывод
#include <iostream>
//Позволяют использовать ф-ю rand()
#include <time.h>
#include <stdlib.h>
//Определяет стандартное пространство имен
using namespace std;

int main()
{
//Объявление массива
const int n=15;
int A[15];
//Сумма нечетных элементов
int sumElem=0;

//Заполнение массива, вывод его на экран
for (int i=0;i<n;i++){
A[i]=rand()%100-50;
cout<<A[i]<<" ";
//Подсчет суммы нечетных элементов
if (A[i]%2)
sumElem+=A[i];
}

//Вывод суммы
cout<<"\n\nsum: "<<sumElem<<"\n\n";

//Присваивание нуля элементам, кратным 2
for (int i=0;i<n;i++){
if (!(A[i]%2))
A[i]=0;
}

//Вывод массива
for (int i=0;i<n;i++){
cout<<A[i]<<" ";
}

return 0;
}
Форма ответа