Тема: Допоможіть написати програму.

Задане ціле n > 0 та послідовність з n дійсних чисел, серед яких є хоча би
одне від’ємне число. Знайти величину найбільшого серед від’ємних чисел цієї
послідовності. (Додаткова вимога: масивів не використовувати).

2

Re: Допоможіть написати програму.

Sviatoslav1997 написав:

(Додаткова вимога: масивів не використовувати)

А вказівнити та рядки можна?

3

Re: Допоможіть написати програму.

Я 2 години шукав в інтернеті інформацію про те, як хоча б задати послідовність, але безрезультатно. В підручниках теж не можу знайти інформацію.

4

Re: Допоможіть написати програму.

Так, напевно.

5 Востаннє редагувалося Chemist-i (04.11.2013 20:03:09)

Re: Допоможіть написати програму.

char c[] = "01234...";

Чим Вам не послідовність?
Ну добре, змахує на масив, тоді так

char* c = "01...";

6 Востаннє редагувалося User 298 (05.11.2013 08:53:42)

Re: Допоможіть написати програму.

Мені вдалось, напевно, задати послідовність. А як тепер прописати, щоб воно вибирало від'ємні числа з неї? Ось код:

Прихований текст
#include <stdio.h>
#include <math.h>

int main()
{
    int n;
printf ("Enter the number:\n");
char* c = "01...";
scanf_s ("%d", &c);
return 0;
}

Bartash: код слід брати у теги [ code ].

7 Востаннє редагувалося koala (05.11.2013 09:17:02)

Re: Допоможіть написати програму.

Chemist-e, а вам не соромно? Ні, школота школотою, але й знущатися... негарно.
Sviatoslav1997: мається на увазі, що користувач буде вводити послідовно n і числа послідовності. Як саме вони будуть представлені в вашій програмі - зовсім інше питання; до речі, вам прямо сказали масивів не використовувати. Скажімо так - для цієї програми цілком достатньо тримати в пам'яті одночасно (тобто, мати такі змінні):
- кількість елементів послідовності n;
- поточний член послідовності (скажімо, a);
- поточний мінімум (найбільший з уведених на даний момент - наприклад, amax).
Можна ще утримувати номер поточного елемента (i), але це вже справа смаку.
А потім вводите елементи по одному, якщо підходить - заносите в amax. Наприкінці виводите amax.

Подякували: Chemist-i1

8

Re: Допоможіть написати програму.

Sviatoslav1997, C чи C++?

9

Re: Допоможіть написати програму.

Цікава заява. Не поділитеся, як побітовою арифметикою знайти максимум серед набору чисел (припустимо, знак вхопити з першого біту можна)?
Ну і зовсім не потрібна бітова арифметика для цієї задачі, цілком можливо без уявлення про неї її розв'язати.

10 Востаннє редагувалося koala (09.11.2013 18:38:05)

Re: Допоможіть написати програму.

Вибачте, але heap - це, схоже, те, що у вас в голові.
Ще раз: я не питав, як перший (знаковий) біт перехоплювати, хоч зауважу, що стандарт C++ не визначає, що саме перший біт має бути знаковим, тому краще все ж порівнювати з 0. Я питав, як за допомогою бітових операцій максимум шукати. Прошу.

11

Re: Допоможіть написати програму.

Якби вас у універі ще вчили:
1) Читати правила;
2) Ставити теги code;
3) Відповідати на питання, які вам поставили;
4) Не казати, що "якщо комусь невідома побітова арифметика, то не варто продовжувати", доки не вивчите хоча б ввід і вивід даних;
5) Шукати максимум;
6) Застосовувати бульбашковий алгоритм за призначенням;
7) Не користуватися вказівниками там, де вони, по суті, не потрібні -
отоді можна було б про щось говорити.
А поки що:
- код не користується бітовою арифметикою;
- код не шукає максимум.
Сідай, два.

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

12 Востаннє редагувалося Svjtik28 (25.04.2017 07:27:08)

Re: Допоможіть написати програму.

Тоді цікаво від гуру почути,що таке побітова арифметика,в мене помилки то є,але я запропонував свою думку.

13 Востаннє редагувалося Chemist-i (11.11.2013 00:07:14)

Re: Допоможіть написати програму.

Svjtik28 написав:

Тоді цікаво від гуру почути,що таке побітова арифметика,в мене помилки то є,але я запропонував свою думку.

Вам же кілька разів вже написали - що не побітова, а бітова. (укр. вікі)

14

Re: Допоможіть написати програму.

Тут якесь самовпевнене хамло трохи вище вважало, що не варто щось пояснювати людям, які не знають, що таке бітова арифметика. Не бачу сенсу ставити планку нижче за нього.

15

Re: Допоможіть написати програму.

Даю підказку, треба використовувати або стек або чергу

16 Востаннє редагувалося UndefID (28.11.2013 19:33:48)

Re: Допоможіть написати програму.

Можливо так?

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    int n, i = 1;
    double buf, max;
    cout << "Enter n: ";
    cin >> n;
    cin >> buf;
    while(!(buf < 0) && i <= n) {
        cin >> buf;
        i++;
    }
    // Оскільки за умовою є хоча б одне від'ємне число, то ми не перевіряємо чи i==n
    max = buf;
    for(; i <= n; i++) {
        if(buf < 0 && abs(buf) > abs(max))
            max = buf;
    }
    cout << "Max: " << max;
    return 0;
}