Как сделать так, что-бы массиве были не только положительные числа, но и отрицательные?

Как сделать так, что-бы массиве были не только положительные числа, но и отрицательные? В том фрагменте кода числа генерируються только от 0 до 100.

for(i=0; i<n; i++)
a[i] = rand() % 100;

Как найти самый большой среди отрицательных и наименьший среди положительных элементов сгенерированого массива.

У меня есть код, но он только находить элементы тогда, когда массив заполняеться вручную.

int nvalues()
{
bool min = false;
bool max = false;

for (int i = 0; i < n; ++i)
{
    if (a[i] < 0)
        if (a[i] > max)  
            {
                max = a[i];
                max = true;
            }

    if (a[i] > 0) 
        if (a[i] < min)  
        {
            min = a[i];
            min = true;
        }
}

if (min)
    cout << "\nMin = " << min;
else 
    cout << "\nNo positive elements";

if (max)
    cout << "\nMax = " << max;
else
    cout << "\nNo negative elements!";
}

Ответы (1 шт):

Автор решения: KoVadim

Хотите отрицательные числа? сделайте их

for(i=0; i<n; i++)
  a[i] = (rand() % 100) - 50;

и теперь уже будет не в диапазоне [0,100), а в [-50,50).

По поводу поиска. вот такая конструкция

max = a[i];
max = true;

просто присвоит 1 в max. Вам нужны две отдельные переменные для двух разных случаев. Если флажок false, то в основную переменную записывайте найденную переменную. Если нет - сравнивайте и забирайте больше/меньше.

→ Ссылка