напишите процедуру digits, которая заполняет массив из n элементов цифрами десятичной записи натурального числа x.
в 0-ой элемент массива необходимо записать цифру 0-го разряда десятичной записи числа х.
в 1-ый элемент массива необходимо записать цифру 1-го разряда десятичной записи числа х.
в (n-1)-ый элемент массива необходимо записать цифру (n-1)-го разряда десятичной записи числа х.
размер массива заранее задан константой n. используйте заголовок:
procedure digits(x: longint; var m: tmas);
тип тmas задан как array[0..n - 1] of longint и может использоваться для описания параметров подпрограмм.
Б) 7.
Объяснение:
Смотрим на последние разряды.
4 + 3 = 7, а там 0. Следовательно, было 10, единица ушла в следующих разряд. Чтобы вместо 7 получилось 10, основание системы счисления должно быть меньше на 10 - 7 = 3 (мы же все считали в привычной десятиричной системе). От 10 отнимаем 3 и будет 7. Это и есть ответ. И не нужно ничего больше никуда переводить.
Для примера. Если бы было написано в последних разрядах 4 и 2, а результат был бы 1, мы бы рассуждали так.
4 + 2 = 6, а написано 1, т.е. это было 11. 11 - 6 = 5 (разница).
10 - 5 = 5. Значит, система по основанию 5. Быстро и легко.
#include <iostream>
#include <ctime>
#include <algorithm>
using namespace std;
int* input_arr_auto(int* arr, int n) {
for (int i = 0; i < n; i++) {
arr[i] = rand() % 100;
}
return arr;
}
void print_array(int* arr, int n) {
cout << endl;
for (int i = 0; i < n; i++) {
cout << arr[i] << "\t";
}
}
int* input_arr(int* arr, int n) {
cout << "Введите элементы массива по одному, или используйте другую функцию для автозаполнения";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
return arr;
}
int third_largest(int* arr, int n) {
int first=arr[0], second=arr[0], third=arr[0];
if (n < 3) {
return -1;
}
for (int i = 0; i < n; i++)
{
if (arr[i] > first)
{
third = second;
second = first;
first = arr[i];
}
else if (arr[i] > second)
{
third = second;
second = arr[i];
}
else if (arr[i] > third)
third = arr[i];
}
return third;
}
int main() {
srand(time(NULL));
setlocale(LC_ALL, "Russian");
int n, third_elem;
cout << "Введите размерность N: ";
cin >> n;
int* arr = new int[n];
arr = input_arr_auto(arr, n);
print_array(arr, n);
third_elem = third_largest(arr, n);
if (third_elem == -1) {
cout << "Недостаточно элементов массива";
}
for (int i = 0; i < n; i++) {
if (arr[i] > third_elem) {
arr[i] = third_elem;
}
}
print_array(arr, n);
}