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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2013, 16:57   #1
iSunny
Новичок
Джуниор
 
Регистрация: 08.12.2013
Сообщений: 1
Радость Новенькая в C++. Нужна ваша помощь

Как можно сделать? Не понимаю
Это первый пункт этой задачи:
Используя генератор случайных чисел, заполнить массив из 20 элементов целочисленными значениями в диапазоне [11, 39], сумма цифр которых меньше 7.
Прототип пользовательской функции:
int genprint(int*, const int, const int, const int);
параметры функции: массив, число элементов массива, левая и правая границы интервала случайных чисел, верхняя граница суммы чисел. Функция возвращает общее число сгенерированных значений, которое потребовалось для заполнения всего массива числами.

*) вывод получаемых значений происходит в функции main(); значения элементов массива выводятся в две строки по 10 элементов в каждой в след виде:
- первые 10 элементов: <значения>
- вторые 10 элементов: <значения>
(выводимые значения аккуратно выравниваются; ширина поля вывода равняется 4).
- число сгенерированных значений = <значение>

Решение:
Код:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;

int genprint(int *, const int, const int, const int, const int);

int main()
{
setlocale(LC_ALL, "Russian");
srand(time(0));

const int arrSize = 20;
int massiv[arrSize];
int left = 11, right = 39, high = 7;
int chislo;
chislo = genprint(massiv, arrSize, left, right, high);

cout<<"Вывод нашего массива: \n";
cout<<"Первые десять значений: ";
for(int i=0; i<(arrSize/2); i++)
cout<<setw(4)<<massiv[i];
cout<<'\n';
cout<<"Вторые десять значений: ";
for(int i=arrSize/2; i<arrSize; i++)
cout<<setw(4)<<massiv[i];
cout<<'\n'<<"число сгенерированных значений = <"<<chislo<<"> \n";
system("pause");
return 0;
}

int genprint(int *arr, const int N, const int lb, const int rb, const int hb)
{
int a;
int i = 0, counter = 0;
while(i<N)
{
a=rand()%(rb-lb+1)+lb;
counter++;
if((a%10)+(a/10)<7)
{
arr[i] = a;
i++;
}
}
return counter;
}

Как решить второй пункт задачи?
Вычислить сумму элементов массива, расположенных между вторым минимальным и вторым максимальным элементами.
ПРототип пользовательской функции:
int sum2mxn(int*, const int, int&, int&);
параметры функции: массив, число элементов масива, (вторые) максимальный и минимальный элементы(ссылки).
Функция возвращает сумму элементов массива, расположенных между вторым минимальным и вторым максимальным элементами.
*) вывод получаемых значений происходит в функции main(); выводятся значения второго максимального и второго минимального элементов + выполненная сумма элементов в виде:
- второй max элемент массива = <значение>
- второй min элемент массива = <значение>
- сумма элементов массива = <значение>

Последний раз редактировалось Stilet; 08.12.2013 в 17:04.
iSunny вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна ваша помощь Шаманочка Паскаль, Turbo Pascal, PascalABC.NET 2 29.04.2009 20:58
нужна ваша помощь! forsy Паскаль, Turbo Pascal, PascalABC.NET 2 19.05.2008 14:38