Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
#1

Найти номер наименьшего положительного числа в заданной последовательности. Если в ней отсутствуют положительные числа, ответом должно быть -1 - C++

02.01.2014, 02:14. Просмотров 530. Ответов 3
Метки нет (Все метки)

Условие:
Дано натуральное число n (n < 100) и действительные числа 1a, 2a, ..., na. Найти
номер наименьшего положительного числа в заданной последовательности. Если в ней
отсутствуют положительные числа, ответом должно быть значение -1.
Решение:
И так я все сделал, нашел минимум. все работает. но есть одно но а именно
Если в ней отсутствуют положительные числа, ответом должно быть значение -1.
Я ввожу числа к примеру n = 4. Ввожу -4, 9, 8, -2. и программа грубо говоря работает некорректно, т.е. ищем минимум среди отрицательных чисел, а в условии говорится что нужно найти минимум наименьшего положительного. Помогите новичку исправить пожалуйста. Буду очень очень благодарен P.S. дополнительно нашел максимум.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<iostream>
#include<math.h>
 
using namespace std;
int main ()
{
    setlocale(0, "rus");
    int n;
    cout << "Введите количество елементов: ";
    cin >> n;
    double a [100];
    double min = 0, max = 0;
    for (int i = 0; i < n; i++)
    {
        cout << "Введите а["<< i+1 <<"]: ";
        cin >> a[i];
    }
    min = a[0];
    for (int i = 0; i < n; i++)
    {
        if (a[i] < min)
        {
            min = a[i];
        }
    }
    max = a[0];
    for (int i = 0; i < n; i++)
    {
        if (a[i] > max)
        {
            max = a[i];
        }
    }
     while (min, max > 0)
     {
         cout << "Найменьшее положительное числo: " << min << endl;
     break;
     }
     while (max <= 0)
     {
        cout << "Ответ: -1" << endl;
        break;
     }
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2014, 02:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти номер наименьшего положительного числа в заданной последовательности. Если в ней отсутствуют положительные числа, ответом должно быть -1 (C++):

Задача на массивы. Найти номер наименьшего положительного числа последовательности - C++
Дано натуральное число n(n\leq 100).И действительные числа{a}_{1},{a}_{2}...{a}_{n} Найти номер наименьшего положительного числа в...

Задача на массивы. Найти номер наименьшего положительного числа последовательности - C++
Дано натуральное числоn(n\leq 100).И действительные числа{a}_{1},{a}_{2}...{a}_{n} Найти номер наименьшего положительного числа в заданной...

Определить номер наименьшего числа последовательности (программа работает но не правильно) - C++
Дана последовательность из целых чисел, за которой следует 0. Определите номер наименьшего числа из этой последовательности....

Найти числа из заданной последовательности, которые делятся на все числа из другой последовательности - C++
Вход программы имеет следующий формат. Сначала вводится N &gt; 0- количество чисел в последовательности А. Далее идут N целых чисел. После...

Уменьшить все числа заданной последовательности, начиная с первого положительного, на указанное число - C++
Даны действительные числа a1,…, a37. Все числа этой последовательности, начиная с первого положительного, уменьшить на 0.5. Помогите плиз....

11.196. Дан массив целых чисел. Найти номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть напечатано соответ - C++
11.196. Дан массив целых чисел. Найти номер первого элемента, кратного числу 13. Если таких элементов в массиве нет, то должно быть...

3
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
02.01.2014, 03:04 #2
Anwer,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<iostream>
#include<math.h>
 
using namespace std;
int main ()
{
    setlocale(0, "rus");
    int n;
    cout << "Введите количество елементов: ";
    cin >> n;
    double a [100];
    double min = 0, max = 0;
    for (int i = 0; i < n; i++)
    {
        cout << "Введите а["<< i+1 <<"]: ";
        cin >> a[i];
    }
 
    for (int i = 0; i < n; i++)
    {
        if ((a[i] < min || min == 0) && a[i] > 0)
        {
            min = a[i];
        }
    }
    max = a[0];
    for (int i = 0; i < n; i++)
    {
        if (a[i] > max)
        {
            max = a[i];
        }
    }
 
    if (min != 0)
        cout << "Найменьшее положительное числo: " << min << endl;
    else
        cout << "Найменьшее положительное числo:  -1" << endl;
 
     while (max <= 0)
     {
        cout << "Ответ: -1" << endl;
        break;
     }
    system("pause");
    return 0;
}
Изначально инициализируем значением 0 min

В цикле делаем условие

C++
1
if ((a[i] < min || min == 0) && a[i] > 0)
Если i-ый элемент массива меньше минимального значения или минимальное значение == 0 (изначально) и одновременно i-ый элемент массива положительный - задаем новое значение минимума.

А дальше смотрим - если после цикла было задано какое-нибудь значение минимуму - значит минимум найден. Если значение переменной осталось == 0 - значит не было положительных элементов и выводим -1
1
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
02.01.2014, 03:39 #3
Цитата Сообщение от Anwer Посмотреть сообщение
Найти номер наименьшего положительного числа в заданной последовательности. Если в ней отсутствуют положительные числа, ответом должно быть значение -1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int j = 0;
while((j < n) && (a[j] <= 0)) 
  ++j;
 
cout << "Номер наименьшего положительного числа: ";
if(j < n) {        
  for(int i = j + 1; i < n; i++)        
    if((a[i] > 0) && (a[i] < a[j]))
      j = i;        
  cout << j + 1 << endl;
}
else 
  cout << "-1" << endl;
1
Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
02.01.2014, 17:24  [ТС] #4
Спасибо большое!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2014, 17:24
Привет! Вот еще темы с ответами:

Найти номер строки наименьшего положительного элемента матрицы - C++
Найти номер строки наименьшего положительного элемента. Вот мой код void __fastcall TForm1::Button2Click(TObject *Sender) { int...

Дано 10 вещественных чисел. Найти порядковый номер второго положительного числа - C++
Помогите пожалуйста с программой. Нашел на форуме ответ на задачу &quot;10 вещественных чисел. Найти порядковый номер второго положительного...

Даны целые числа a1, a2, ., an. Получить те положительные числа из этой последовательности, которые являются полными квадратами - C++
ПОМОГИТЕ решить задачу на C++ Заранее спасибо! Даны целые числа a1, a2, ..., an. Получить те положительные числа из этой...

Рекурсия: вывести сначала все положительные числа заданной последовательности, а потом все отрицательные - C++
Задание написать на Си С клавиатуры вводится непустая последовательность ненулевых целых чисел, которая заканчуется нулем. Вывести на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
02.01.2014, 17:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru