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

Вариант №32

Дан массив действительных чисел X[N]. Отсортировать его по возрастанию целой части элементов. Исходный и преобразованный массив вывести на экран.

#include <iostream>

#include <math.h>

using namespace std;

void main()

{ int n;

cout << "Razmer:" << endl;

cin >> n;

double *arr = new double[n];

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

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

cin >> arr[i];

}

cout << "Massiv:" << endl;

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

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

int y1, y2;

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

{ for(int j = n-1; j > i; j--)

{ y1 = (int)arr[j];

y2 = (int)arr[j-1];

if(abs(y1) < abs(y2))

{

double x = arr[j-1];

arr[j-1] = arr[j];

arr[j] = x;

}

}

}

cout << "\n Izmenenniy massiv" << endl;

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

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

delete[] arr;

}

Ввести символьную строку. Если ее длина равна 10, удалить все буквы - A, ... Z. Вывести преобразованную строку. Дополнительные строки не использовать. (При выводе строк использовать функцию puts).

#include <stdio.h>

#include <iostream>

void input_str(char*);

void delNum(char*);

void main()

{ setlocale(LC_ALL, "Russian");

char str[100];

input_str(str);

delNum(str);

puts(str);

}

void input_str(char* str)

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

gets(str);

}

void delNum(char* str)

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

{if(str[i]>='A' && str[i]<='Z' )

{int j=i;

while(j<strlen(str))

{ str[j]=str[j+1];

++j;

}

--i;

}

}

}

Вариант №33

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

#include <iostream>

using namespace std;

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

{ int j = 0;

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

{if(arr[i] > 0)

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

}

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

{ if(arr[i] < 0)

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

}}

void main()

{ int n;

cout << "Razmer: ";

cin >> n;

double *arr = new double[n];

double *arr2 = new double[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] << " ";

}

int plus = 0;

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

{ if(arr[i] <= 0)

{ plus++; }

}

Sort(n, arr, arr2);

cout << endl;

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

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

cout << endl;

delete[] arr;

delete[] arr2;

}

Вводим число, например 45678. Найти произведение данного числа и числа обратного данному числу. (т.е. 45678*87654 ). Получения обратного числа написать с помощью функции.

#include <iostream>

#include <windows.h>

void getInput();

void getOut(int num, int mun);

int getInverse(int num);

int reverse(int num, int base);

int getBase(int num);

void main()

{ setlocale(LC_ALL,".1251");

getInput();

}

void getInput()

{ int num, mun;

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

scanf("%d", &num);

mun = getInverse(num);

getOut(num, mun);

}

void getOut(int num, int mun)

{ printf("\n%d * %d = %d\n", num, mun, num * mun);

}

int getInverse(int num)

{ int mun;

mun = reverse(num, getBase(num));

return mun;

}

int getBase(int num)

{ int base = 1;

while(base < num/10)

{ base *= 10; }

return base;

}

int reverse(int num, int base)

{ int mun = 0;

int ciph;

while(num > 0)

{ciph = num % 10;

num = num / 10;

mun += ciph * base;

base /= 10;

}

return mun;

}

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