Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_Практ_new1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
225.79 Кб
Скачать

Формирование массива Пример

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

Вариант программы на языке С

#include <stdio.h>

#include <locale.h>

#include <stdlib.h>

#include <time.h>

#define NA 10

#define NB 10

#define NC NA

int main()

{

int a[NA], b[NB], c[NC];

int i, j, k = 0;

setlocale(LC_ALL, "");

/* Функция time возвращает текущее время в милисекундах.

Это значение передаётся в функцию srand для нициализации генератора псевдослучайных чисел.

*/

srand(time(0));

/* Функция rand возвращает псевдослучайное число из диапазона [0, 32767].

Для получения числа от 0 до 9 используется операция '%'.

*/

for(i = 0; i < NA; i++)

a[i] = rand() % 10;

for(i = 0; i < NB; i++)

b[i] = rand() % 10;

printf("Массив a:");

for(i = 0; i < NA; i++)

printf(" %d", a[i]);

printf("\n");

printf("Массив b:");

for(i = 0; i < NB; i++)

printf(" %d", b[i]);

printf("\n");

for(i = 0; i < NA; i++)

{

int flag = 1;

for(j = 0; j < NB; j++)

if(a[i] == b[j])

{

flag = 0;

break;

}

if(flag)

c[k++] = a[i];

}

printf("Массив c:");

for(i = 0; i < k; i++)

printf(" %d", c[i]);

printf("\n");

return 0;

}

Вариант программы на языке С++

#include <iostream>

#include <locale>

#include <cstdlib>

#include <ctime>

using namespace std;

/*

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

*/

int main()

{

const int na = 10, nb = 10, nc = na;

int a[na], b[nb], c[nc];

setlocale(LC_ALL, "");

// Функция time возвращает текущее время в милисекундах.

// Это значение передаётся в функцию srand для

// нициализации генератора псевдослучайных чисел.

srand(time(0));

// Функция rand возвращает псевдослучайное число из диапазона [0, 32767].

// Для получения числа от 0 до 9 используется операция '%'.

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

a[i] = rand() % 10;

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

b[i] = rand() % 10;

cout << "Массив a:";

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

cout << " " << a[i];

cout << endl;

cout << "Массив b:";

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

cout << " " << b[i];

cout << endl;

int k = 0;

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

{

bool flag = true;

for(int j = 0; j < nb; j++)

if(a[i] == b[j])

{

flag = false;

break;

}

if(flag)

c[k++] = a[i];

}

cout << "Массив c:";

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

cout << " " << c[i];

cout << endl;

return 0;

}

Задания для самостоятельного решения

  1. Дан целочисленный массив A размера N<=15. Переписать в новый целочисленный массив B все элементы с порядковыми номерами, кратными трем, и вывести размер полученного массива B и его содержимое. Условный оператор не использовать.

  2. Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент BK равен среднему арифметическому элементов массива A с номерами от K до N.

  3. Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент BK равен сумме элементов массива A с номерами от 1 до K.

  4. Дан целочисленный массив A размера N. Переписать в новый целочисленный массив B все четные числа из исходного массива (в том же порядке) и вывести размер полученного массива B и его содержимое.

  5. Даны два массива A и B размера 5, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив C (размера 10) остался упорядоченным по возрастанию.

  6. Дан массив A размера N. Сформировать новый массив B того же размера, элементы которого определяются следующим образом: BK = 2·AK,если AK < 5, AK/2 в противном случае.

  7. Дан целочисленный массив A размера N. Переписать в новый целочисленный массив B того же размера вначале все элементы исходного массива с четными номерами, а затем — с нечетными: A2, A4, A6, …, A1, A3, A5, … . Условный оператор не использовать.

  8. Даны два массива A и B одинакового размера N. Сформировать новый массив C того же размера, каждый элемент которого равен максимальному из элементов массивов A и B с тем же индексом.

  9. Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные элементы массива A, в массив C — все отрицательные (сохраняя исходный порядок следования элементов).

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