Написать функцию, которая принимает указатель на массив и количество элементов и возвращает минимальный элемент массива (значение и номер элемента).
Я не понимаю каким образом я вернув номер элемента должен его вывести из массива. Можете просто объяснить? не обязательно расписывать ответ
int decision(const int size,int *pmas) {
int pos = pmas[0];
for (int i = 0; i < size; i++) {
if (pmas[i] < pos) {
pos = pmas[i];
}
}
return pos;
}
void main() {
setlocale(LC_ALL, "Rus");
const int size = 10;
int mas[size];
srand(time(NULL));
int* pmas = mas;
for (int i = 0; i < size; i++) {
mas[i] = rand() % 10;
cout << mas[i] << " ";
}
cout << endl;
cout << "Номер минимального индекса массива: " << decision(size, pmas);
Попробуйте тут искать не значение, а индекс:
int decision(const int size,int *pmas) {
int pos =0, min = pmas[0];
for (int i = 1; i < size; i++) {
if (pmas[i] < min) {
min = pmas[pos = i];
}
}
return pos;
}
тогда будет легко и просто вывести и индекс, и значение:
int pos = decision(size, pmas);
cout << "Индекс минимального значения массива: " << pos << "\n";
cout << "Минимальное значение массива: " << pmas[pos] << "\n";
При определении функции название переменного, таких как int pos
, только является подсказкой о том, что вы намерены там хранить. Но одно только название не дает гарантию, что там действительно сохранено ожидаемое значение. В вашем определении функции, переменная(обьект) pos
вовсе не хранит позицию минимального элемента, а хранит значение минимального элемента. Чтобы вызывающая функция могла использовать значение, определяемое в вызываемой функции, нужно:
вернуть из функции это значение. В данном вернуть значение позиции (смотрите ответ от Harry
)
Или
предположив, что вызывающая функция обязательно сохранит в каком нибудь обьекте это значение, обеспечить передачу в вызываемую функцию, ссыльку на этот обьект:
int decision(const int size,int *pmas, int& index) {
//...
index = //определить значение позиции
min_element = //значение минимального элемента
return min;
}
Тут мы храним индекс в переменной, переданной функции по ссыльке, и таакже возвращаем из функции значение самого элемента. Тогда вызывающая функция(программа) может быть записан так:
int pos;
cout << "Минимальное значение массива: "
<< decision(size, pmas, pos)
<< "\nИндекс минимального значения массива: " << pos;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В попытках поставить драйвер, перерыл пол-интернетаВ качестве БД использую MySql, но обертка поверх нее XAMPP
Отправляю определенный пост запрос на сервер и исходя из отправленных данных получаю ответ от сервера Success либо Updated