Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120

Сформировать массив из элементов исходных массивов, меньших произведения последних элементов заданных массивов.

07.05.2012, 15:00. Показов 3582. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна:
1)генерировать случайным образом элементы исходных массивов;
2)выполнять действия в соответствии с условием задачи;
3)выводить:
- исходные массивы,
- сформированный массив, если он был сформирован. В противном случае – соответствующее сообщение.

Вот я сделала 2 исходных массива случайных чисел, а как выполнить дальнейшее условие задания совсем не понимаю, если можете набросайте пожалуйста дальнейший код желательно с комментариями. Заранее спасибо.

#include <stdio.h>
#include <stdlib.h>
int main(void){
int a[20],b[20],i,n,j,s;
printf("Введите исходное число n:");
scanf("%d",&n);
srand(n);
for (i=0; i<20; i++)
a[i]=rand();
for (i=0; i<20; i++)
printf("a[%d]=%d\n", i,a[i]);
printf("Введите исходное число s:");
scanf("%d",&s);
srand(s);
for (j=0; j<20; j++)
b[j]=rand();
for (j=0; j<20; j++)
printf("b[%d]=%d\n", i,b[j]);
return 0;
}

Добавлено через 3 часа 26 минут
нужна помощь

Добавлено через 3 часа 15 минут
help

Добавлено через 15 часов 44 минуты
набросала на паре программу, к сожалению не очень верно, help

#include <stdio.h>
#include <stdlib.h>
int main(void){
int a[10],b[10],z[15],i,n,s,k,m;
printf("Введите исходное число n:");
scanf("%d",&n);
srand(n);
for (i=0; i<10; i++)
a[i]=rand();
for (i=0; i<10; i++)
printf("a[%d]=%d\n", i,a[i]);
printf("Введите исходное число s:");
scanf("%d",&s);
srand(s);
for (i=0; i<10; i++)
b[i]=rand();
for (i=0; i<10; i++)
printf("b[%d]=%d\n", i,b[i]);
k=0;
for (i=0; i<n; i++){
if (a[i]<a[9]*b[9]){
z[k]=a[i];
k++;}
}
for (i=0; i<m; i++){
if (b[i]<a[9]*b[9]){
z[k]=b[i];
k++;}
}
printf("massiv a:");
for (i=0; i<n; i++)
printf("a[%d]=%d\n",i,a[i]);
printf("massiv b:");
for (i=0; i<m; i++)
printf("b[%d]=%d\n",i,b[i]);
if (k==0)
printf("massiv ne sformirovan\n");
else
{
printf("massiv z:");
for (i=0; i<k; i++)
printf("z[%d]=%d\n",i,z[k]);
}
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2012, 15:00
Ответы с готовыми решениями:

Сформировать третий массив из положительных элементов исходных массивов, меньших 10
Сформировать третий массив из положительных элементов исходных массивов, меньших 10.

Сформировать третий массив из элементов исходных массивов, большиз 3, но меньших 10
1.Сформировать третий массив из элементов исходных массивов,большиз 3 ,но меньших 10. 2.Заменить отрицательные элементы,стоящие на...

Сформировать третий массив из меньших - 3 элементов исходных массивов, стоящих на четных местах.
Сформировать третий массив из меньших - 3 элементов исходных массивов, стоящих на четных местах

5
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
07.05.2012, 15:49
Сначала вопрос по поводу кода:
Зачем нужна переменная m и что она делает в цикле неинициализированная:
C++
1
2
3
4
5
for (i=0; i<m; i++){
 if (b[i]<a[9]*b[9]){
 z[k]=b[i];
 k++;}
 }
Итак, внесённые изменения:
1. Переменная t - нужна для формирования случайного числа. Сильно расписывать как это работает не буду - просто посмотрите, что происходит без неё (прогоните программу пару раз вводя одинаковые значения).
2. Константы MAS и MASZ - просто для удобства редактирования программы.
3. В последнем цикле должна выводиться z[i], а не z[k].
Листинг:
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
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 int main(){
     const int MAS=10, MASZ=20; //В случае изменения размера массивов достаточно поменять значения этих констант
     int a[MAS],b[MAS],z[MASZ],i,n,s,k;
     time_t t; //Для формирования случайного числа
     printf("Введите исходное число n: ");
     scanf("%d",&n);
     srand((unsigned) time(&t)+n);
     for (i=0; i<MAS; i++)
        a[i]=rand();
     for (i=0; i<MAS; i++)
     printf("a[%d]=%d\n", i,a[i]);
     printf("Введите исходное число s: ");
     scanf("%d",&s);
     srand((unsigned) time(&t)+s);
     for (i=0; i<MAS; i++)
        b[i]=rand();
     for (i=0; i<MAS; i++)
        printf("b[%d]=%d\n", i,b[i]);
     k=0;
     for (i=0; i<MAS; i++)
        if (a[i]<a[MAS-1]*b[MAS-1])
        {
            z[k]=a[i];
            k++;
        }
     for (i=0; i<MAS; i++)
        if (b[i]<a[MAS-1]*b[MAS-1])
        {
            z[k]=b[i];
            k++;
        }
     printf("massiv a:");
     for (i=0; i<MAS; i++)
        printf("a[%d]=%d\n",i,a[i]);
     printf("massiv b:");
     for (i=0; i<MAS; i++)
        printf("b[%d]=%d\n",i,b[i]);
     if (k==0)
        printf("massiv ne sformirovan\n");
     else 
     {
        printf("massiv z:");
        for (i=0; i<k; i++)
            printf("z[%d]=%d\n",i,z[i]);
     }
     return 0;
 }
P.S. Используйте оформление кода.
1
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
07.05.2012, 18:28  [ТС]
Спасибо большое за пояснение, да действительно переменную потеряла и в конце z[i].
Извините а где можно прочитать про srand((unsigned) time(&t)+n) ? не совсем понятно как это работает

Добавлено через 26 минут
кажется поняла всё кроме: почему +n ?
0
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
07.05.2012, 18:31
Цитата Сообщение от melanu Посмотреть сообщение
Извините а где можно прочитать про srand((unsigned) time(&t)+n) ?
Честно говоря, лень ползти в поиск, так что попробую объяснить как помню.
Функция srand() определяет последующие значения функции rand() в зависимости от переданного ей аргумента. То есть если передавать ей в качестве аргумента переменную со значением 2, то она выдаст определённый результат. Однако, если снова запустить программу и передать в качестве аргумента то же значение 2, то эта функция выдаст тот же самый результат. Поэтому полученные значения элементов массива являются не случайными, а псевдослучайными (зависят от аргумента). Насколько я помню, функция time() возвращает время в секундах от какого-то момента до переменной, переданной ей в качестве параметра. Переменная t содержит время на момент своего объявления (~время запуска программы). Поэтому элементы массива зависят не только от введённого пользователем значения переменной, но и от времени запуска программы.
Вот наглядный пример кода (попробуй запустить пару раз и сравни результаты):
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    time_t t;
    int i, zn;
    srand(3);
    printf("Argument srand() = 3:\n");
    for (i=0; i<3; i++)
    {
        zn=rand();
        printf("%d - %d\n", i, zn);
    }
    srand((unsigned) time(&t));
    printf("\nArgument srand() = t\n");
    for (i=0; i<3; i++)
    {
        zn=rand();
        printf("%d - %d\n", i, zn);
    }
    return 0;
}
0
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
07.05.2012, 18:35  [ТС]
спасибки сейчас буду пробовать!
0
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
07.05.2012, 18:36
Цитата Сообщение от melanu Посмотреть сообщение
почему +n ?
Да нипочему... Просто так поставил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2012, 18:36
Помогаю со студенческими работами здесь

Сформировать массив S, состоящий из одинаковых элементов исходных массивов
2 массива X, Y, каждый из 10 эл-в. Сформировать массив S, состоящий из одинаковых эл-в исходных массивов. #include&lt;iostream&gt; ...

Сформировать массив, состоящий из одинаковых элементов исходных массивов
Ввести два массива X и Y, состоящих из 10-ти элементов целого типа. Сформировать массив S, состоящий из одинаковых элементов исходных ...

Сформировать массив из отрицательных элементов исходных массивов, больших -5
Сформировать массив из отрицательных элементов исходных массивов, больших - 5. помогите пожалуйста

Сформировать массив из элементов исходных массивов, образующих возрастающую последовательность
Задача: Заданы массивы целых положительных чисел X(n), Y (k), Z(m). Сформировать массив U из таких элементов массивов X, Y , Z, которые в...

Сформировать новый массив из элементов, входящих только в один из исходных массивов
Даны два массива A и B. Сформировать новый массив C, состоящий из элементов, входящих только в один из исходных массивов. Для упрощения...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru