Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
9 / 9 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
1

Сформировать массив из заданного количества случайных целых чисел в заданном диапазоне

28.02.2015, 19:33. Просмотров 1920. Ответов 5
Метки нет (Все метки)

Доброго времени суток ув. форумчане.
Не могу въехать как написать эту задачу:
Задана последовательность значений элементов некоторого массива до и после преобразования по некоторому правилу. Определите алгоритм преобразования и напишите программу, которая:
1) формирует массив из заданного количества случайных целых чисел в заданном диапазоне и выводит элементы массива на экран;
2) по определенному вами алгоритму преобразовывает этот массив и выводит на экран элементы преобразованного массива.
3) производит заданные вычисления (рекомендуется оформить в виде отдельной функции) и выводит результат на экран.
Массив K = (5, –5, 4, 9, –7, –11, 0) преобразован к виду K = (0, 1, 0, 0, –1, –5, 0). Размер массива K - 21 элемент из диапазона [–56,56]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–1, 16].
Просто не понимаю куда и что, читаю статьи про массивы как об стенку горох.. буду признателен за подсказки и помощь в написании.
Для начала как сформировать массив из заданного диапазона, в условии не понимаю по какому алгоритму преобразоваться массив и как это отобразить в программном коде.

Добавлено через 39 минут
Вот что то нашел похожее на мое задание и постарался адаптировать под себя..
ок допустим, верно адаптировал кхе кхе.. или все же чего то не хватает
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include "iostream"
#include "time.h"
#include "stdlib.h"
 
const int N = 21;
int random(int N) { return rand() % N; }
 
int _tmain(int argc, _TCHAR* argv[])
{
    system("CLS");
    int i, A[N], a = -56, b = 56, sum;
    for (i = 0; i < N; i++)
        A[i] = random(b - a + 1) + a;
    printf("\nmassiv1\n");
    for (i = 0; i < N; i++)
        printf("%4d", A[i]);
    printf("\nmassiv2\n");
    for (i = 0; i < N; i++)
    {
        if (A[i]<0) A[i] = 0;
    }
    A[i] = random(b - a + 1) + a;
    for (i = 0; i < N; i++)
        printf("%4d", A[i]);
    printf("\nsum\n");
 
    printf("%4d", A[i]);
    for (i = 0; i < N; i++)
        sum = 0;
    for (i = 0; i<N; i++)
    {
        if (A[i]>-16 && A[i]<6)
        sum += A[i];
    }
    printf("%4d", sum);
    system("PAUSE");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2015, 19:33
Ответы с готовыми решениями:

Сформировать массив случайных целых чисел в заданном диапазоне
Такая вот задачка не получается решить(написать) её. (хочу понять-разобраться что и как) ...

Сформировать массив 30 целых случайных чисел в диапазоне от минус 40 до 40
Сформировать массив 30 целых случайных чисел в диапазоне от минус 40 до 40. Напечатать его. Все...

Сформировать массив 25 целых случайных чисел диапазоне от минус 40 до 60
сформировать массив 25 целых случайных чисел диапазоне от минус 40 до 60. Напечатать его.Найти 3...

Сформировать массив 20 целых случайных чисел в диапазоне от минус 20 до 20
Сформировать массив 20 целых случайных чисел в диапазоне от минус 20 до 20. Напечатать его....

5
Эксперт PHP
2385 / 2142 / 989
Регистрация: 14.05.2014
Сообщений: 6,253
Записей в блоге: 1
28.02.2015, 19:44 2
ghjuf,
Код
if K[i] > 0
    K1[i] = 0
else
    K1[i] = K[i]+6
1
9 / 9 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
28.02.2015, 20:07  [ТС] 3
Kerry_Jr, не понял к какому месту это проковырять.. или даже что этот момент вычисляет?
0
Эксперт PHP
2385 / 2142 / 989
Регистрация: 14.05.2014
Сообщений: 6,253
Записей в блоге: 1
28.02.2015, 21:03 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от ghjuf Посмотреть сообщение
K = (5, –5, 4, 9, –7, –11, 0)
Это исходный массив. Если i-тый элемент исходного массива больше либо равен нулю (выше постом я чуть в условии ошибся), то в результирующем массиве i-тому элементу присваиваем ноль, в ином случае i-тому элементу результирующего массива присваивается сумма i-того элемента исходного массива и 6.
Код
K[0] == 5 > 0 -> K1[0] = 0
K[1] ==-5 < 0 -> K1[1] = -5 + 6 = 1
K[2] == 4 > 0 -> K1[2] = 0
K[3] == 9 > 0 -> K1[3] = 0
K[4] ==-7 > 0 -> K1[4] = -7 + 6 = -1
K[5] ==-11< 0 -> K1[5] = -11 + 6 = -5
K1(0, 1, 0, 0, -1, -5). Я предполагаю, что 6 - это размер массива.

Добавлено через 11 минут
Цитата Сообщение от ghjuf Посмотреть сообщение
Для начала как сформировать массив из заданного диапазона
C++
1
2
3
4
5
const int N = 21, MIN_NUM = -56, MAX_NUM = 56;//MIN_NUM - нижний предел диапазона значений, MAX_NUM - верхний предел
int array[N];
srand(time(0));
for (int i = 0; i < N; ++i)
    array[i] = rand() % (MAX_NUM - MIN_NUM + 1) + MIN_NUM; // общая формула для диапазонов, указанных в квадратных скобках
Добавлено через 10 минут
Если я правильно понял алгоритм преобразования, то делаем так
C++
1
2
3
4
int array1[N];
for (int i = 0; i < N; ++i)
    if (array[i] >= 0) array1[i] = 0;
    else array1[i] = array[i] + 21;
Осталось найти сумму
C++
1
2
3
int sum = 0;
for (int i = 0; i < N; ++i)
    if (array1[i] >= -1 && array1[i] <= 16) sum += array1[i];
Я думаю, собрать это все воедино сами сможете. Только не забудьте вывести исходный и результирующий массивы и сумму.
1
9 / 9 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
16.01.2016, 14:45  [ТС] 5
Блин, столько времени прошло. Помогите все же собрать эту программу.
Уже совсем потерял что тут к чему.. а без нее не принимают.
0
733 / 538 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
17.01.2016, 07:45 6
ghjuf,
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
#include <stdio.h>
#include <stdlib.h>
const int N = 21;
int random (int m)
{
    return rand()%m;
}
int main()
{
    int i, a = -56, b = 56, K[N], sum = 0;
    for(i = 0; i < N; ++i){
        K[i] = random(b - a + 1) + a;
        printf("%3d", K[i]);
    }
    printf("\n");
    for(i = 0; i < N; ++i){
        if(K[i] >= 0)
            K[i] = 0;
        else
            K[i] = K[i] + 6;
        printf("%3d", K[i]);
        if(K[i] >= -1 && K[i] <= 16)
            sum = sum + K[i];
    }
    printf("\nSumma elementov diapazona [-1;16] = %d\n", sum);
    return 0;
}
Добавлено через 12 минут
только не понятно почему
Цитата Сообщение от ghjuf Посмотреть сообщение
Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–1, 16].
до 16,ведь,согласно алгоритму,больше чем 5 в этом массиве быть не может
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2016, 07:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сформировать массив 100 целых случайных чисел в диапазоне от 0 до 9
Сформировать массив 100 целых случайных чисел в диапазоне от 0 до 9. Напечатать его. Найти и...

Заполнить одномерный массив состоящий их 20 целых случайных чисел в заданном диапазоне
помогитее....

Сформировать одномерный массив из 50 случайных целых чисел в диапазоне от 1 до 100.
Сформировать одномерный массив из 50 случайных целых чисел в диапазоне от 1 до 100. Результат...

Сформировать массив целых случайных чисел в диапазоне от 0 до 10. Подсчитать сумму четных и нечетных
2)Сформировать массив целых случайных чисел в диапазоне от 0 до 10. Подсчитать сумму четных и...


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

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

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