наименьшее значение массива

Я пытаюсь написать функцию, которая будет возвращать наименьшее значение массива. Пока у меня есть это, но все это возвращает 0.

Я не вижу, как он будет возвращать 0, так как я использую цикл for для циклического перемещения по массиву. Возможно, он не циклически перебирает значения массивов, как мне кажется. Кто-нибудь может уточнить логику и ошибку в этом коде?

#include <iostream>

using namespace std;

int newArray[9] = {4,5,9,3,6,2,1,7,8};int minArray()
{
int index = 1;
int minimum;

for (int i = 0; i < 9; i++)
{
if (newArray[i] > newArray[index])
{
minimum = newArray[index];
}
index++;

}

return minimum;
}int main()
{
cout << "original array:\n ";
for (int i = 0; i < 9; i++)
{
cout << newArray[i] << ", ";
}

cout << "minimum value of array: ";
cout << minArray();

return 0;
}

0

Решение

Хорошей идеей может быть инициализация минимума с элементом в массиве.
Так:

minimum = newArray[0]

В вашем цикле (псевдокод, если вы не хотите ответа):

if: newArray[pos] < minimum

minimum = newArray[pos];
1

Другие решения

Я бы сделал что-то вроде этого:

#include <iostream>

int minArray(int a[], int size) {
if (size <= 0) return 0; //
int m = a[0];
for (int i = 1; i < size; ++i) {
if (a[i] < m) m = a[i];
}
return m;
}

int main() {
int a[] = { 4, 3, 6, 2 };
std::cout << minArray(a, 4);
return 0;
}
0

Вы должны инициализировать minimum с некоторым известным значением или с максимальным целочисленным значением.

int minArray()
{
int minimum = newArray[0];

for (int i = 1; i < 9; i++)
{
if (minimum > newArray[i])
{
minimum = newArray[i];
}
}

return minimum;
}

И вы имеете дело с index (на самом деле вам это не нужно). Пример того, как index можно использовать вместо minimum:

int minArray()
{
int index = 0;

for (int i = 1; i < 9; i++)
{
if (newArray[index] > newArray[i])
{
index = i;
}
}

return newArray[index];
}

Оба примера должны работать нормально, но я рекомендую использовать в первую очередь.

0

minimum переменная должна быть изначально присвоена значению в массиве, затем сравнить каждый элемент в массиве с minimum, Если меньше чем, назначьте minimum с этим значением:

int minArray()
{
int minimum = newArray[0];
int index = 0;

for (int i = 0; i < 9; i++)
{
if (newArray[i] < minimum)
{
minimum = newArray[i];
}
index++;

}
return minimum;
}
0
По вопросам рекламы [email protected]