Тема: У заданому масиві знайдіть найбільший від’ємний елемент

У заданому масиві знайдіть найбільший від’ємний елемент

#include "stdafx.h"
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    setlocale(LC_ALL, "russian");
    const int size = 5;
    int mas[size];
    int tmp=-32000;
    // Введення даних у масив користувачем
    for (int i = 0; i < size; i++){
        cout << "Введіть " << i << " елемент масиву ";
        cin >> mas[i];
    }
    // обробка
    
    for (int i = 0; i < size; i++)
    {
        if (mas[i] < 0 & mas[i]>tmp)
        {
            tmp = mas[i];
        }
    }
    cout << "Найбільший від’ємний елемент " << tmp << endl;
    system("pause");
    return 0;
}

Готово

2

Re: У заданому масиві знайдіть найбільший від’ємний елемент

Що готово? І чому ви використовуєте бінарне 'і'?

3

Re: У заданому масиві знайдіть найбільший від’ємний елемент

проясніть

4 Востаннє редагувалося FakiNyan (22.01.2015 00:27:24)

Re: У заданому масиві знайдіть найбільший від’ємний елемент

я сам толком не знаю, як працює побітове і, але знаю, що коли треба об'єднати дві умови. то треба &&, а не &
здається, зрозумів, у випадку & між двомя булями, воно буде повертати завжди true, якщо хоча б один з них true, нехай пан koala виправить, тобто ні, якщо хоча б одне false, то буде false, а якщо два true, то true, тобто все вірно, чи що? я не розумію

Подякували: koala1

5

Re: У заданому масиві знайдіть найбільший від’ємний елемент

Операція && - логічна: true && true == true, наприклад 4&&2 == true (4 і 2 - не нулі і тому перетворюються на true).
Операція & - бітова, вона виконується з кожною парою бітів. Наприклад, 4 & 2 == 0, тобто false (бо 4=100(2) і 2=010(2) попарно в кожному розряді дають 0).

Подякували: Chemist-i, FakiNyan2

6

Re: У заданому масиві знайдіть найбільший від’ємний елемент

koala написав:

Операція && - логічна: true && true == true, наприклад 4&&2 == true (4 і 2 - не нулі і тому перетворюються на true).
Операція & - бітова, вона виконується з кожною парою бітів. Наприклад, 4 & 2 == 0, тобто false (бо 4=100(2) і 2=010(2) попарно в кожному розряді дають 0).

але з булями можна працювати використовуючи &?

7

Re: У заданому масиві знайдіть найбільший від’ємний елемент

FakiNyan написав:
koala написав:

Операція && - логічна: true && true == true, наприклад 4&&2 == true (4 і 2 - не нулі і тому перетворюються на true).
Операція & - бітова, вона виконується з кожною парою бітів. Наприклад, 4 & 2 == 0, тобто false (бо 4=100(2) і 2=010(2) попарно в кожному розряді дають 0).

але з булями можна працювати використовуючи &?

Так, то true перетворюється на 1, false на 0, і фактично іде обробка тільки останнього розряду. Але не варто.

Подякували: FakiNyan, Roma_Kononenko2

8

Re: У заданому масиві знайдіть найбільший від’ємний елемент

Прихований текст

господи, стільки нового дізнаюсь

9

Re: У заданому масиві знайдіть найбільший від’ємний елемент

мені б Ваш мозок... :(

10 Востаннє редагувалося koala (22.01.2015 08:00:34)

Re: У заданому масиві знайдіть найбільший від’ємний елемент

Знову ви штучне значення в максимальне ставите...

    tmp = mas[ 0 ];
    for (int i = 0; i < size; i++)
    {
        if ( ( mas[i] < 0 ) && ( tmp > 0 || tmp < mas[i]  ) )
        {
            tmp = mas[i];
        }
    }

Оскільки складні умови погано сприймаються, особливо початківцями, та й взагалі некрасиво, можна навіть так:

    tmp = mas[ 0 ];
    for (int i = 0; i < size; i++)
    {
        if ( mas[i] < 0 )
        { 
            if( tmp > 0 || tmp < mas[i]  )//якщо ще не знайшли жодного від'ємного або знайшли такий, що нам годиться
            {
                tmp = mas[i];
            }
        }
    }

ну і в кінці треба вивести щось інше, якщо немає від'ємних.

11

Re: У заданому масиві знайдіть найбільший від’ємний елемент

Roma_Kononenko написав:

мені б Ваш мозок... :(

Записуйтесь у чергу. Може через декілька століть ваша черга прийде.