Дан массив действительных чисел а[i], i = 1..., n. Используя указатели, найти минимальный элемент из его значений с парными номерами.
Входные данные: n=5; a[i]={14,6,13,14,6}
Исходные данные: min=6.
C/C++
Задачи с указателями С++
#include <iostream>
using namespace std;
int* min_pos_even(int* box, int* end) {
if (box && end && box <= end) {
auto beg = box + 1;
auto pos = end;
while (beg < end && (*beg & 1)) beg += 2;
if (beg < end) {
pos = beg;
while (beg < end) {
if ((~*beg & 1) && *beg < *pos) pos = beg;
beg += 2;
}
}
return pos;
}
return box;
}
int main() {
int a[]{ 14, 6, 13, 14, 4 };
for (auto x : a) cout << x << ' ';
puts("");
auto end = a + size(a);
auto ptr = min_pos_even(a, end);
if (ptr != end) cout << *ptr << '\n';
else puts("Not found!");
}
using namespace std;
int* min_pos_even(int* box, int* end) {
if (box && end && box <= end) {
auto beg = box + 1;
auto pos = end;
while (beg < end && (*beg & 1)) beg += 2;
if (beg < end) {
pos = beg;
while (beg < end) {
if ((~*beg & 1) && *beg < *pos) pos = beg;
beg += 2;
}
}
return pos;
}
return box;
}
int main() {
int a[]{ 14, 6, 13, 14, 4 };
for (auto x : a) cout << x << ' ';
puts("");
auto end = a + size(a);
auto ptr = min_pos_even(a, end);
if (ptr != end) cout << *ptr << '\n';
else puts("Not found!");
}
Со вводом длины и компонент динамического массива с экрана:
#include <iostream>
int main() { int i, n; double j, min; std::cout << "n: ";
std::cin >> n; double *a = new double [n];
for (i = 0; i < n; i++) std::cin >> *(a + i);
min = *(a + 1); for (i = 1; i < n; i += 2)
{ j = *(a + i); if (j < min) min = j; }
std::cout << "min = " << min; }
Это если "парные номера" -это чётные номера массива, соответствующие компонентам с нечётными индексами.
#include <iostream>
int main() { int i, n; double j, min; std::cout << "n: ";
std::cin >> n; double *a = new double [n];
for (i = 0; i < n; i++) std::cin >> *(a + i);
min = *(a + 1); for (i = 1; i < n; i += 2)
{ j = *(a + i); if (j < min) min = j; }
std::cout << "min = " << min; }
Это если "парные номера" -это чётные номера массива, соответствующие компонентам с нечётными индексами.
Похожие вопросы
- Тема: указатели. Условие задачи описано ниже:
- Различие указателей int *; и char *;
- Не совсем понял как работает C++ код с указателями
- Если указатель уже объявлен как указатель то при повторном объявлении мы обращаемся не к указателю а к адресу ссылки?
- Передача в метод класса указателя на функцию C++
- C/C++ Как устроена память, выделенная для структуры с указателем *next?
- В чём причина? Понторезов с очень высшим образованием слушать не буду. Только тех, кто практикует работу с указателями вС++
- Указатели. Типизированные указатели. Указатели та массивы. Функции пользователя
- Ссылки и указатели
- Указатели. Программирование с использованием динамических двухмерным масивов.