Int main() {
int a1[N] = { 5, 1, 3, 4, 2 };
int a2[N] = { 8, 7, 9, 6, 10 };
int a3[2 * N];
// Сортировка a1 по возрастанию
sort_asc(a1, N);
// Сортировка a2 по убыванию
sort_desc(a2, N);
// Объединение в третий массив
for (int i = 0; i < N; i++) a3[i] = a1[i];
for (int i = 0; i < N; i++) a3[N + i] = a2[i];
// Сортировка a3 по возрастанию
sort_asc(a3, 2 * N);
// Вывод результатов
print_array("a1 (возр)", a1, N);
print_array("a2 (убыв)", a2, N);
print_array("a3 (общий, возр)", a3, 2 * N);
return 0;
}
Вставить заданный элемент в исходную позицию (отодвинуть и в освободившееся место вставить новый элемент; в подпрограмме + тестирование)
#include <stdio.h>
#define MAX 100
void insert_element(int arr[], int* n, int pos, int value) {
// Сдвигаем элементы вправо, начиная с конца до позиции pos
for (int i = *n; i > pos; i--) {
arr[i] = arr[i - 1];
}
arr[pos] = value;
(*n)++;
}
void print_array(int arr[], int n) {
for (int i = 0; i < n; i++) printf("%d ", arr[i]);
printf("\n");
}
Int main() {
int arr[MAX] = { 10, 20, 30, 40, 50 };
int n = 5;
int pos = 2;
int val = 99;
printf("Исходный массив:\n");
print_array(arr, n);
insert_element(arr, &n, pos, val);
printf("После вставки %d в позицию %d:\n", val, pos);
print_array(arr, n);
return 0;
}
Найти корни уравнения и подставить в формулу, проверка на 0, коэффициенты заданы массивами
#include <stdio.h>
#include <math.h>
double poly(double c[], double x) {
return c[0] * x * x + c[1] * x + c[2];
}
Int main() {
double c[3] = { 1, -3, 2 }; // Пример: x^2 - 3x + 2 = 0
double a = c[0], b = c[1], cc = c[2];
double d = b * b - 4 * a * cc;
if (a == 0) {
printf("a=0, не квадратное уравнение\n");
return 0;
}
if (d < 0) {
printf("Корней нет\n");
}
else if (d == 0) {
double x = -b / (2 * a);
printf("Один корень: %.6f\n", x);
printf("Проверка: %.6f\n", poly(c, x));
}
else {
double x1 = (-b + sqrt(d)) / (2 * a);
double x2 = (-b - sqrt(d)) / (2 * a);
printf("Корни: %.6f и %.6f\n", x1, x2);
printf("Проверка 1: %.6f\n", poly(c, x1));
printf("Проверка 2: %.6f\n", poly(c, x2));
}
return 0;
}
Перевод чисел из двоичной в шестнадцатеричную , из восьмеричной в шестнадцатеричную (отдельно оформить перевод целого и дробного числа подпрограммой)
Из 2 в 16
#include <iostream>
#include <string>
using namespace std;
string table[] = { "","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F" };
string binIntToHex(string s) {
while (s.length() % 4 != 0) s = '0' + s;
string res, tmp;
int cnt = 0;
for (char ch : s) {
tmp += ch; cnt++;
if (cnt == 4) {
int val = 8 * (tmp[0] - '0') + 4 * (tmp[1] - '0') + 2 * (tmp[2] - '0') + (tmp[3] - '0');
res += table[val];
tmp = ""; cnt = 0;
}
}
return res;
}
string binFracToHex(string s) {
while (s.length() % 4 != 0) s += '0';
string res, tmp;
int cnt = 0;
for (char ch : s) {
tmp += ch; cnt++;
if (cnt == 4) {
int val = 8 * (tmp[0] - '0') + 4 * (tmp[1] - '0') + 2 * (tmp[2] - '0') + (tmp[3] - '0');
res += table[val];
tmp = ""; cnt = 0;
}
}
return res;
}
