Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
187.07 Кб
Скачать

Вариант №34

Дан массив целых чисел X[M]. Сформировать массив, в котором сначала записаны четные числа исходного массива, а затем нечетные в том порядке, в котором они находятся в исходном массиве. Вывести на экран исходный и преобразованный массивы.

#include <iostream>

using namespace std;

void Sort(int n, int *arr, int *arr2)

{ int j = 0;

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

{ if(arr[i]%2 == 0)

{ arr2[j++] = arr[i]; }

}

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

{ if(arr[i]%2 != 0)

{ arr2[j++] = arr[i]; }

}

}

void main()

{ int n;

cout << "Razmer: ";

cin >> n;

int *arr = new int[n];

int *arr2 = new int[n];

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

{ cout << "arr [" << i << "]: ";

cin >> arr[i];

}

cout << endl;

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

{ cout << arr[i] << " ";

}

Sort(n, arr, arr2);

cout << endl;

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

{ cout << arr2[i] << " "; }

cout << endl;

delete[] arr;

delete[] arr2;

}

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

#include <stdio.h>

#include <iostream>

void input_str(char*);

void Check(char*, int*);

void output_arr(int*);

void main()

{ setlocale(LC_ALL, "Russian");

char str[100];

int arr[255]={0};

input_str(str);

Check(str, arr);

output_arr(arr);

}

void input_str(char* str)

{

puts("Введите строку:");

gets(str);

}

void Check(char* str, int* arr)

{

for(int i=0; i< strlen(str); ++i)

{

++arr[str[i]];

}

}

void output_arr(int* arr)

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

if(arr[i])

printf("%c \t %d\n", i, arr[i]);

}

Вариант №35

Даны массивы целых чисел A[N] и B[N]. Создать массив С[N], элементы которого получаются по следующему правилу: С[i] = max (A[i], B[i]). Определить, сколько элементов С[i] получило значение A[i]. Вывести исходные массивы и результаты вычислений.

#include <iostream>

using namespace std;

void Vivod(int n, int *arr)

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

{ cout << arr[i] << " "; }

}

void main()

{ int n;

cout << "Razmer" << endl;

cin >> n;

int *A = new int[n];

int *B = new int[n];

int *C = new int[n];

cout << "Massiv A" << endl;

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

{ cout << "A[" << i << "]: ";

cin >> A[i];

}

cout << "\nMassiv B" << endl;

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

{ cout << "B[" << i << "]: ";

cin >> B[i];

}

int j = 0;

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

{ if(A[i] > B[i])

{ C[i] = A[i];

j++; }

else

{ C[i] = B[i]; }

}

cout << "\nMassiv A" << endl;

Vivod(n, A);

cout << "\nMassiv B" << endl;

Vivod(n, B);

cout << "\nMassiv C" << endl;

Vivod(n, C);

cout << "\nElementov iz massiva A " << j;

cout << endl;

delete[] A;

delete[] B;

delete[] C;

}

Ввести два положительных целых числа. Найти наибольший общий делитель этих чисел. Программа должна содержать рекурсивную функцию.

#include <iostream>

#include <windows.h>

void getInput();

int getNOK(int n1, int n2);

int getNOD(int n1, int n2);

void getOut(int res);

void main()

{

setlocale(LC_ALL,".1251");

getInput();

}

void getInput()

{ int n1 = 0, n2 = 0;

puts("Введите 2 числа: ");

scanf("%d%d", &n1, &n2);

int buf;

if(n1 < n2)

{ buf = n1;

n1 = n2;

n2 = buf;

}

getOut(getNOD(n1, n2));

}

void getOut(int res)

{ printf("\n%d\n", res); }

int getNOD(int n1, int n2)

{ if(n1 % n2 != 0)

{ getNOD(n2, n1%n2); }

else

{

return n2;

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]