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

Заполнить одномерный массив двадцатью первыми натуральными числами, кратными 5-ти или 7-ми

09.11.2014, 16:31. Показов 8104. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составьте программу, которая заполняет одномерный массив двадцатью первыми натуральными числами, кратными 5-ти или 7-ми. Полученный массив вывести на экран.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2014, 16:31
Ответы с готовыми решениями:

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300
1. Заполнить массив: а) двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300; б) тридцатью первыми...

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17
Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и находящимися в интервале, левая граница...

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и находящимися в ин
Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и находящимися в интервале, левая граница...

27
09.11.2014, 16:44

Не по теме:

Haskell
1
print $ take 20 [i|i<-[1..], mod i 5==0 || mod i 7==0]
[5,7,10,14,15,20,21,25,28,30,35,40,42,45, 49,50,55,56,60,63]

0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 17:28
Лучший ответ Сообщение было отмечено Maru11 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main()
{
    int n;
    scanf("%d", &n);            /* вводим размер массива n*/
    int* arr = new int[n];      /* создаём динамический массив размера n */
 
    int j = 0;
    for (int i = 0; i < n && j < 20; i++) {
        scanf("%d", &arr[i]);
        if ((arr[i] % 5 == 0 || arr[i] % 7 == 0) && arr[i] > 0)     /* берём первые 20 натуральных элементов массива, кратных 5-ти и 7-ми */
            arr[j++] = arr[i];
        }
 
    for (int k = 0; k < j; k++)
        printf("%d ", arr[k]);      /* выводим "новый" массив на экран */
 
    delete[] arr;   /*  удаляем динамическую память */
    return 0;
}
Добавлено через 8 минут

Не по теме:

_Ivana, а ты учёл, что элементы массива могут быть ненатуральными числами, например, -25. :D

1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.11.2014, 17:43
Dennis Ritchie, не могут:
Цитата Сообщение от Maru11 Посмотреть сообщение
заполняет одномерный массив двадцатью первыми натуральными числами
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 17:56
Цитата Сообщение от _Ivana Посмотреть сообщение
Dennis Ritchie, не могут:
Там не написано, что элементы массива не могут быть ненатуральными. В массиве могут "валяться" и отрицательные числа, а твоя программа должна "заполнить одномерный массив двадцатью первыми натуральными элементами, кратными 5-ти или 7-ми." Ещё раз: там не сказано, что исходный массив (ряд чисел) содержит только натуральные числа. Так что доделай свой код. На C++ это сделать просто (&& arr[i] > 0), а на Haskell?
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.11.2014, 17:58
Dennis Ritchie, приведите конкретный пример вашего бредового понимания задачи, чтобы я понял - реализуем и его
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 18:17
Цитата Сообщение от _Ivana Посмотреть сообщение
Dennis Ritchie, приведите конкретный пример вашего бредового понимания задачи, чтобы я понял - реализуем и его
Исходный массив, например, на 40 элементов:
[1, -7, -5, -55, -100, -15, 2, 5, 10, 15, 4, 49, 50, 9, 7, 7, 40, 20, 21, 14, 8, 12, 16, 63, 80, 100, 35, 42, 28, 45, 80, 43, 99, 0, 55, 65, 56, 33, 98, 77]
Новый массив:
[5, 10, 15, 49, 50, 7, 7, 40, 20, 21, 14, 63, 80, 100, 35, 42, 28, 45, 80, 55]
Да, моё понимание этой задачи оказалось бредовым. Я подумал, что у нас имеется исходный массив. Но всё равно, напишите, пожалуйста, код для моего "бредового" понимания этой задачи.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.11.2014, 18:32
Haskell
1
2
l = [1, -7, -5, -55, -100, -15, 2, 5, 10, 15, 4, 49, 50, 9, 7, 7, 40, 20, 21, 14, 8, 12, 16, 63, 80, 100, 35, 42, 28, 45, 80, 43, 99, 0, 55, 65, 56, 33, 98, 77]
main = print $ take 20 [i|i<-l, (mod i 5==0 || mod i 7==0) && i>0]
[5,10,15,49,50,7,7,40,20,21,14,63,80,100, 35,42,28,45,80,55]

Добавлено через 6 минут
Haskell
1
main = print $ take 20 $ filter (\i -> (i>0) && (mod i 5==0 || mod i 7==0)) l
1
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 18:41
Правильное решение задачи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
#define LIM 100
 
int main()
{
    int arr[LIM];
 
    int j = 0;
    for (int i = 5; i < LIM && j < 20; i++)
        if (i % 5 == 0 || i % 7 == 0) {
            arr[j++] = i;
            printf("%d ", arr[j - 1]);
        }
 
    putchar('\n');
    return 0;
}

Не по теме:

Спасибо, _Ivana

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.11.2014, 18:54
Зачем LIM? Вы сомневаетесь, что в диапазоне интов мы найдем 20 натуральных чисел, кратных 5 или 7?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 18:58
Цитата Сообщение от _Ivana Посмотреть сообщение
Зачем LIM? Вы сомневаетесь, что в диапазоне интов мы найдем 20 натуральных чисел, кратных 5 или 7?
Я не знаю, как написать без LIM. Предложите свой вариант.
0
 Аватар для ReinDeer
19 / 19 / 9
Регистрация: 15.09.2014
Сообщений: 127
09.11.2014, 19:01
Dennis Ritchie, возможности программы ограничиваются. Тут же ясно даются на вход "20", так вот, когда найдется "20" - закрыть цикл.
Поначалу вы явно переоценили тз)
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.11.2014, 19:01
Например, так:
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    int arr[20], j = 0;
    for (int i = 5; j < 20; i++)
        if (i % 5 == 0 || i % 7 == 0) {
            arr[j++] = i;
            printf("%d ", arr[j - 1]);
        }
    putchar('\n');
    return 0;
}
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 19:20
Цитата Сообщение от _Ivana Посмотреть сообщение
Например, так:
Без вопросов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
#define LIM 20
 
int main()
{
    int arr[LIM];
 
    int j = 0;
    for (int i = 5; i < LIM && j < 20; i++)
        if (i % 5 == 0 || i % 7 == 0) {
            arr[j++] = i;
            printf("%d ", arr[j - 1]);
        }
 
    putchar('\n');
    return 0;
}
Просто я сначала придумал более плохое решение, а потом переделал его на однопроходной цикл. В итоге я забыл снизить LIM = 100 на LIM = 20.

Цитата Сообщение от ReinDeer Посмотреть сообщение
Поначалу вы явно переоценили тз)
Да, я просто не мог подумать, что оно такое простое, поэтому мысленно усложнил его.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.11.2014, 19:23
Dennis Ritchie, несмотря на ваш ник, вы умудряетесь путаться в простейших вещах. Запустите ваш последний код с лимом, к которому вы прикипели душой и не можете отказаться - что он вам выдаст?
Я же вам привел код без этого ненужного лима.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 19:50
Цитата Сообщение от _Ivana Посмотреть сообщение
Я же вам привел код без этого ненужного лима.
Не паникуйте: LIM - это очень важная штука (то бишь константа) :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
#define LIM 20
 
int main()
{
    int arr[LIM];
 
    int j = 0;
    for (int i = 5; j < LIM; i++)
        if (i % 5 == 0 || i % 7 == 0) {
            arr[j++] = i;
            printf("%d ", arr[j - 1]);
        }
 
    putchar('\n');
    return 0;
}
0
 Аватар для ReinDeer
19 / 19 / 9
Регистрация: 15.09.2014
Сообщений: 127
09.11.2014, 19:51
Dennis Ritchie, у меня всегда так.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.11.2014, 19:54
Цитата Сообщение от ReinDeer Посмотреть сообщение
Dennis Ritchie, у меня всегда так.
Это же C++, здесь никак нельзя иначе.
0
1 / 1 / 0
Регистрация: 24.09.2014
Сообщений: 33
10.11.2014, 19:46  [ТС]
а что означает arr[j-1] то,что в квадратных скобках?...
спасибо за программку
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
10.11.2014, 19:56
Цитата Сообщение от Maru11 Посмотреть сообщение
а что означает arr[j-1] то,что в квадратных скобках?...
В квадратных скобках находится индекс элемента массива, т. е. из переменной j вычитается единица. Число, получившееся в результате этого вычитания, и будет индексом элемента массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2014, 19:56
Помогаю со студенческими работами здесь

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300
заполнить массив двадцатью первыми натуральными числами делящимися нацело на 13 или на17 и большими 300 C#

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300
а) двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300; б) тридцатью первыми простыми числами. ...

Заполнить массив двадцатью первыми натуральными числами
Заполнить массив двадцатью первыми натуральными числами, делящимися нацело 13 или на 17 и находящимися в интервале, левая граница которого...

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 и 17.
1 Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 и 17. 2 Имеется файл, элементами которого являются...

Создать массив и заполнить его двадцатью первыми целыми числами
Помогите создать консольное приложение. Создать массив и заполнить его 20-ю первыми целыми числами, которые делятся на 13 или на 17 и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru