Как найти кратные числа в одномерном массиве

Infanta

6 / 2 / 0

Регистрация: 15.10.2013

Сообщений: 78

1

Одномерный массив, поиск кратных чисел

23.01.2021, 20:49. Показов 2630. Ответов 3

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

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

получается вводится и обратно выводиться в обратном порядке, а как выбрать кратное числу и их выводить ???

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdlib>
int main() {
using namespace std;
const int SIZE = 20;
cout << "k="; cin >> k;
int mass[SIZE] = { 1 + rand() % 19 };
for (int i = 0; i < SIZE; i++) {
mass[i] = { 1 + rand() % 19 }; //заполняем массив случайными числами
cout << mass[i] << " "; // выводим массив
}
cout << endl;
for …
ЗДЕСЬ НУЖНО ВЫБРАТЬ ЧИСЛА КРАТНЫЕ ЧИСЛУ ВВОДИМОМУ С КЛАВИАТУРЫ
=k
}
}
for (int j = SIZE; j >= 0; j--)
cout << mass[j] << " "; // Выводим новый массив из выбранных кратных в обратном порядке
}



0



BlackStoneBlack

half-horse half-gateway

115 / 81 / 43

Регистрация: 10.05.2016

Сообщений: 541

23.01.2021, 21:11

2

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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "");
 
    int* arr = nullptr;
    int old_size = 0, number = 0, element = 0, new_size = 0;
    cout << "Введите количество элементов в массиве: ";
    cin >> old_size;
    cout << "Введите число, которому должен быть кратен элемент массива: ";
    cin >> number;
    cout << "Элементы массива:n";
 
    for (int i = 0; i < old_size; i++)
    {
        cout << "Введите элемент №" << i + 1 << ": ";
        cin >> element;
 
        if (element % number == 0)
        {
            int* new_arr = new int[++new_size];
 
            if (arr != nullptr)
                for (int j = 0; j < new_size - 1; j++)
                    new_arr[j] = arr[j];
 
            new_arr[new_size - 1] = element;
            delete[] arr;
            arr = new_arr;
        }
    }
 
    cout << "Полученный массив:n";
 
    for (int i = new_size - 1; i >= 0; i--)
        cout << arr[i] << "t";
 
    delete[] arr;
 
    return 0;
}



1



Yetty

7427 / 5021 / 2891

Регистрация: 18.12.2017

Сообщений: 15,694

23.01.2021, 21:22

3

Лучший ответ Сообщение было отмечено Infanta как решение

Решение

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main() 
{
    const int n=20;
    int k, m=0, p=0;
    int a[n];
    cout << "k="; cin >> k;
    
    for (int i = 0; i < n; i++) 
    {
        a[i]=rand()%19 + 1;        
        if(a[i]%k==0) m++;
        cout << a[i] << " "; 
    }
    cout << "n";   
    
    if(m)
    {    
        int *b = new int[m];
    
        for (int i=n-1; i >= 0; i--)                 
            if(a[i]%k==0) b[p++]=a[i];
            
        for (int i = 0; i < m; i++)       
            cout << b[i] << " "; 
        cout << "n";
        
        delete[]b;
    }
    else cout << "numbers are multiples " << k << " are absentn";
    
system("pause");
return 0;
}



1



6 / 2 / 0

Регистрация: 15.10.2013

Сообщений: 78

23.01.2021, 21:57

 [ТС]

4

Спасибо, все работает!

Добавлено через 30 минут
Yetty, огромное спасибо что именно мой код помогли! буду разбираться!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

23.01.2021, 21:57

Помогаю со студенческими работами здесь

Массив, найти количество чисел, кратных 3 и не кратных 2
Добрый день товарищи!
В общем задание такое:
Дана числовая последовательность чисел, необходимо…

Ввести одномерный массив из 10 целых чисел. Найти и напечатать сумму элементов, кратных 2.
Ввести одномерный массив из 10 целых чисел. Найти и напечатать сумму элементов, кратных 2.

Массив и поиск кратных чисел в нем
Здравствуйте! Цель написать процедуру, которая будет из одномерном массиве выводить числа кратные,…

Дано одномерный массив A с n целых чисел. Составить программу, найдет сумму элементов массива кратных 6
Дано одномерный массив A с n целых чисел. Составить программу, найдет сумму элементов массива…

Случайный одномерный массив с вводом кол-ва элементов и поиск простых чисел
Сформировать случайный одномерный массив с вводом кол-ва элементов пользователем. Найти количество…

Дан одномерный массив А, состоящий из N целых чисел. Переписать из него в одномерный массив В все нечетные числа
У меня есть задание: Дан одномерный массив А, состоящий из N целых чисел. Переписать из него в…

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

Или воспользуйтесь поиском по форуму:

4

program mask;
uses crt;
const n1=23;
      n2=19; 
      n3=17;
      n=25; 
type  mas=array[1..n] of integer;
var faf,f,k:integer;  x1:mas; x2:mas; x3:mas;  n4,i:integer; 
procedure rand(var j:mas; n:integer);
var i:integer;
begin
for i:=1 to n do
 begin
 f:=0;
 j[i]:=random(50)-5;
 write(j[i],' ');
 end;
 writeln;
  for i:=1 to n do
  begin
  if (j[i] mod k)=0 then f:=f+1; 
  
 
 end;
 writeln('Kol-vo kratnix chisly ',k,'=',f);
 for i:= 1 to n do
 if (j[i] mod k)=0 then
 writeln('Число кратне',k,'=',j[i]);
 end;
 
begin
writeln('vvedi k');
readln(k);
clrscr;
writeln('Mасив T1:');
rand(x1,n1);
writeln;
 
writeln('Mасив T2:');
 rand(x2,n2);
writeln;
writeln('Масив T3:'); 
 rand(x3,n3);
 readkey;
 
 end.

Пример 12.8. На складе хранятся пустые ящики для упаковки товара. Известно, что вместимость одного пакета с конфетами x кг. Какова суммарная масса пакетов с конфетами, которые можно упаковать в такие ящики, заполнив ящик целиком?

Этапы выполнения задания

I. Исходные данные: массив а, количество чисел n, число x.

II. Результат: количество ящиков — k, суммарная масса — s.

III. Алгоритм решения задачи.

1. Ввод исходных данных.
2. 
Инициализация счетчика и значения суммы:
k = 0; s = 0;
3. 
Просматривая массив, проверим, является ли текущий элемент числом, кратным x (в этом случае ящик будет заполнен целиком). Если кратен, то  увеличим счетчик k на 1, а переменную s — на значение найденного элемента массива.
4. 
 Вывод результата.

IV. Описание переменных: n, x, k — int, a – vector <int>.

Пример 12.9. Имеется список мальчиков 10 В класса и результаты их бега на 100 м. Для сдачи норматива необходимо пробежать дистанцию не более чем за 16 с. Вывести фамилии учащихся, которые не выполнили норматив по бегу. Сколько таких учащихся в классе? Исходные данные хранятся в текстовом файле input.txt. Результат вывести в текстовый файл output.txt.

Этапы выполнения задания

Исходные данные: массивы fam (фамилии учащихся) и r (результаты бега в секундах), количество учащихся n.

II. Результат: фамилии тех учащихся, которые не выполнили норматив по бегу.

III. Алгоритм решения задачи.

1. Ввод исходных данных.
2. 
Инициализация счетчика: k = 0;
3. 
Будем просматривать массив с результатами и проверять, является ли текущий элемент числом, большим 16 (норматив не сдан). Если такое значение найдено, то выведем элемент массива fam с соответствующим номером и увеличим значение счетчика на 1.
4. 
Вывод значения счетчика.

IV. Описание переменных:  
n, k – int, r – vector <double>,
fam – vector <string>.

Пример 12.10. В двух линейных массивах x и y, заданных случайным образом, хранятся координаты точек плоскости (–200 ≤ x[i], y[i] ≤ 200). Определить, каких точек больше — лежащих внутри или снаружи области, ограниченной окружностью радиуса r, с центром в начале координат (будем считать, что точки, лежащие на окружности, лежат внутри области).

Этапы выполнения задания

I. Исходные данные: x, yмассивы чисел, r — радиус окружности, n — количество точек.

II. Результат — одно из сообщений: «внутри точек больше», «снаружи точек больше» или «точек поровну».

III. Алгоритм решения задачи.

1. Ввод исходных данных. 
2. Инициализация счетчиков: k1 = 0; k2 = 0; 
3. Будем просматривать все точки и для каждой проверять принадлежность области. Если x2 + y2 R2, то точка лежит внутри области, тогда увеличим значение счетчика k1 на 1, если нет, то увеличим на 1 значение счетчика k2
4. Сравним значения k1 и k2 и выведем результат.

IV. Описание переменных: n, k1, k2 — int, x, y – vector <int>.

Пример 12.11. Задан одномерный массив из n целых чисел. Определить количества элементов, которые являются числами Смита. Вывести те элементы, которые являются числами Смита. (Число Смита — такое составное число, сумма цифр которого равна сумме цифр всех его простых сомножителей.) Например, числом Смита является 202 = 2  × 101, поскольку 2 + 0 + 2 = 4 и 2 + 1 + 0 + 1 = 4.

Этапы выполнения задания

I. Исходные данные: амассив чисел, nколичество чисел в массиве.

II. Результат: числа Смита и их количество в массиве.

III. Алгоритм решения задачи.

1. Ввод исходных данных.
2. 
Инициализация счетчика: k = 0;
3. 
Будем просматривать каждый элемент массива и определять, является ли он числом Смита. Для проверки создадим функцию check, которая будет получать в качестве параметра элемент массива, а также возвращать значение true, если число является числом Смита, и false в противном случае.

3.1. Найдем сумму цифр числа.
3.2. Будем разлагать число на простые множители и для каждого множителя находить сумму цифр. 
3.3. Для разложения числа на простые множители будем делить его сначала на 2 (пока делится), затем на 3. На 4 число уже делиться не будет, будем делить на 5 и т. д. Закончится разложение тогда, когда после всех делений число станет равным 1.

4. Также нам понадобится функция sum, которая для числа будет возвращать его сумму цифр. 

IV. Описание переменных:
n, k – int, a – vector <int>.

Пример 12.12. Задан одномерный массив из n строк. Данные в массиве читаются из текстового файла input.txt. Каждая строка является предложением из слов, разделенных пробелами. Найти и вывести в текстовый файл output.txt те предложения, в которых нечетное количество слов. Сколько предложений вывели?

Этапы выполнения задания

I. Исходные данные: амассив строк, nколичество строк в массиве.

II. Результат: искомые строки и их количество.

III. Алгоритм решения задачи.

1. Ввод исходных данных.
2. 
Инициализация счетчика: k = 0;
3. 
Будем просматривать каждую строку и определять, сколько в ней слов. Для проверки создадим функцию check, которая будет получать в качестве параметра элемент массива и возвращать количество слов в строке. Если количество слов является нечетным числом, то выведем строку и увеличим значение счетчика.

3.1. Перед каждым словом предложения, кроме первого, стоит пробел. Слово начинается с символа, который пробелом не является. 
3.2. Добавим пробел перед первым словом, тогда количество слов будет определяться количеством сочетаний пар символов: пробел и не пробел.

IV. Описание переменных:
n, k – int, а – vector <string>
.

Пример 12.8.

V. Программа:

#include <iostream>

#include <vector>

using namespace std;

int main()

{

  setlocale(0,«»);

  int n;

  cout << «n = «;

  cin >> n;

  vector <int> a(n);

  for (int i = 0; i < n; i++)

    cin >> a[i];

  int x;

  cout << «масса конфет «;

  cin >> x;

  int s = 0, k = 0;

  for (int i = 0; i < n; i++)

    if (a[i] % x == 0){

      k++;

      s += a[i];

    }

  cout << «упаковали « << k;

  cout << » ящиков, масса «;

  cout << s << » кг» << endl;

  return 0;

}

VI. Тестирование.

VII. Анализ результатов. Ящики, удовлетворяющие условию задачи, имеют массу 15, 25, 10, 20, 45.

Пример 12.9.

V. Программа:

#include <iostream>

#include <fstream>

#include <vector>

#include <string>

using namespace std;

int main()

{

  ifstream fin («input.txt»);

  ofstream fout («output.txt»);

  int n;

  fin >> n;

  fin.ignore (); 

  vector <string> fam(n);

  vector <double> r(n);

  for (int i = 0; i < n; i++)

    fin >> fam[i] >> r[i];

  int k = 0;

  for (int i = 0; i < n; i++)

    if (r[i] > 16){

      fout << fam[i] << endl;

      ++;

    }

  fout << «не сдали норматив «;

  fout << k << » учащихся« << endl;

  return 0;

}

VI. Тестирование.

 

VII. Анализ результатов. Результат Сидорова 21, а Королева 16.1, что превышает норматив.

Пример 12.10.

V. Программа:

#include <iostream>

#include <vector>

#include <ctime>

#include <cstdio>

using namespace std;

int main()

{

  srand(time(NULL));

  int n, r;

  cout << «n = «;

  cin >> n;

  cout << «r = «;

  cin >> r;

  vector <int> x(n), y(n);

  for (int i = 0; i < n; i++){

    x[i] = rand() % 401  200;

    y[i] = rand() % 401  200;

  }

  int k1 = 0, k2 = 0;

  for (int i = 0; i < n; i++)

    if (x[i] * x[i] + y[i] * y[i] 
        
<= r * r)

      k1++;

    else

      k2++;

  if (k1 > k2)

    cout << «vnutri»;

  else

    if (k1 < k2)

      cout << «snarugi»;

    else

      cout << «porovnu»;

  cout << endl;

  return 0;

}

VI. Тестирование.

VII. Анализ результатов. По сообщениям, которые выдает программа, сложно судить о ее правильности. Для проверки можно вывести значения координат каждой точки в файл и при проверке ставить дополнительные пометки. Например, «+», если точка внутри, и «-», если снаружи.

Пример 12.11.

V. Программа:

#include <iostream>

#include <vector>

using namespace std;

int sum(int x)

{

  int s = 0;

  while (>0){

    s += x % 10;

    x /= 10;

  }

  return s;

}

bool check(int x)

{

  int s1 = sum(x);

  int s2 = 0;

  int d = 2;

  //разложение на простые множители

  while (!= 1){

    while (% d == 0){

      s2 += sum(d);

      x /= d;

    }

    d++;

  }

  return (s1 == s2);

}

int main()

{

  int n;

  cout << «n = «;

  cin >> n;

  vector <int> a(n);

  for (int i = 0; i < n; i++)

    cin >> a[i];

  int k = 0;

  for (int i = 0; i < n; i++)

    if (check(a[i])){

      k++;

      cout << a[i] << » «;

  }

  cout << endl << «vsego « << k;

  cout << » chisel Smita» << endl;

  return 0;

}

VI. Тестирование.

Пример 12.12.

V. Программа:

#include <iostream>

#include <fstream>

#include <vector>

#include <string>

#include <windows.h>

using namespace std;

using namespace std::__cxx11;

int check(string x)

{

  int k = 0;

  x = » « + x;

  int len = x.length();

  for (int i = 0; i < len  1; i++)

    if (x[i] == ‘ ‘ && x[+ 1] != ‘ ‘)

      k++;

  return k;

}

int main()

{

  SetConsoleCP(1251);

  SetConsoleOutputCP(1251);

  ifstream fin(«input.txt»);

  ofstream fout(«output.txt»);

  int n;

  fin >> n;

  fin.ignore();

  vector <string> a(n);

  for (int i = 0; i < n; i++)

    getline(fin, a[i]);

  int k = 0;

  for (int i = 0; i < n; i++)

    if (check(a[i]) % 2){

      fout << a[i] << endl;

      k++;

    }

  fout << «Всего — « << k;

  fout << » строк(–а, –u)» << endl;

  return 0;

}

VI. Тестирование.

 

Автор julia89, 25 апр 2013, 18:43

0 Пользователей и 1 гость просматривают эту тему.

 Подскажите, пожалуйста,что нужно сделать чтобы программа выводила номер этого числа!!!

Перем Кол, ЧислоХ;

НашМассив = Новый Массив;
ВвестиЧисло(Кол, "Введите количество элементов массива");
Для Сч = 1 По Кол Цикл
ВвестиЧисло (ЧислоХ, "Введите элемент массива");
НашМассив.Добавить(ЧислоХ);
КонецЦикла;

Крат10 = НашМассив[0];
Для Сч = 1 По Кол Цикл
     Если НашМассив[Сч-1]%10 = 0 Тогда
Крат10 = НашМассив[Сч-1];
     КонецЕсли;
КонецЦикла;

МаксКрат10 = Крат10 ;

Для Сч = 1 По Кол Цикл
Если ЧислоХ > Крат10 Тогда
МаксКрат10 = ЧислоХ ;
КонецЕсли;
КонецЦикла;
Предупреждение("Максимальное кратное 10 число -  "  + МаксКрат10 );


Цитата: julia89 от 25 апр 2013, 18:43
Подскажите, пожалуйста,что нужно сделать чтобы программа выводила номер этого числа!!!

Ваша программа не выполняет и основной задачи, т.е. она не находит того самого числа — неверно написаны условия и определения во втором (основном) цикле.
Позицию искомого числа определяем в основном цикле (последний цикл в Вашем варианте не нужен) и программка выглядит следующим образом.


Перем Кол, ЧислоХ;
НашМассив = Новый Массив;
ВвестиЧисло(Кол, "Введите количество элементов массива");
Для Сч = 1 По Кол Цикл
    ВвестиЧисло (ЧислоХ, "Введите элемент массива");
    НашМассив.Добавить(ЧислоХ);
КонецЦикла;
Индекс = 0;    // позиция кратного 10 числа
МаксКрат10 = 0;
Для Сч = 1 По Кол Цикл
    Если НашМассив[Сч-1]%10 = 0 Тогда
        Крат10 = НашМассив[Сч-1];
        Если НашМассив[Сч-1] > МаксКрат10 Тогда
            МаксКрат10 = НашМассив[Сч-1];
            Индекс = Сч;
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

Предупреждение("Максимальное кратное 10 число -  "  + МаксКрат10 +
", номер: " + Индекс);


Помогите пожалуйста составить код на 1С
Задача: Дан массив натуральных чисел (можно в коде все задать). Найти минимальный из элементов, кратных числу К. K ввести с клавиатуры в поле формы. Результат вывести с помощью окна сообщения Сообщить.


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • В одномерном массиве найти максимальное кратное 10 число и его номер

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

В одномерном массиве подсчитать количество элементов, кратных 3.

На этой странице вы найдете ответ на вопрос В одномерном массиве подсчитать количество элементов, кратных 3?. Вопрос
соответствует категории Информатика и уровню подготовки учащихся студенческий классов. Если ответ полностью не удовлетворяет критериям поиска, ниже можно
ознакомиться с вариантами ответов других посетителей страницы или обсудить с
ними интересующую тему. Здесь также можно воспользоваться «умным поиском»,
который покажет аналогичные вопросы в этой категории. Если ни один из
предложенных ответов не подходит, попробуйте самостоятельно сформулировать
вопрос иначе, нажав кнопку вверху страницы.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как составить биографию человека вопросы
  • Как найти скрытое видео на айфоне
  • Флешка диск защищен от записи как исправить kingston
  • Как найти толкование пословицы
  • Как найти свое парфюмерное я

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии