Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 09.01.2018
Сообщений: 30

Обработка одномерных статических массивов

14.02.2018, 20:09. Показов 1675. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в том, что программа не находит наименьший положительный элемент. Она работает на костыле и именно поэтому случаются проблемы по типу тех, что указаны во вложениях.
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
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
 
int main()
{
    setlocale(NULL, "Rus");
    int k = 0;
    const int r = 4;
    int x[r];
    for (int i = 0; i < r; i++) 
    {
        cout << "Заполните " << i+1 << "-й" << " элемент массива: "; cin >> x[i];
    }
    int min=x[0];
    for (int i = 0; i < r; i++) 
    {
        if (x[i] < 0) { min = x[i + 1]; } //костыль
        if ((x[i] >= 0) && (x[i] < min)) { min = x[i]; }
    }
    cout << endl;
    cout << "Наименьший положительный элемент массива: " << min << endl;
    cout << endl;
    system("pause");
    return 0;
}
Миниатюры
Обработка одномерных статических массивов  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2018, 20:09
Ответы с готовыми решениями:

Обработка одномерных массивов. Сортировка массивов
Здравствуйте, помогите пожалуйста решить задачу легким способом. В одномерном массиве, состоящем из n вещественных элементов, вычислить: ...

Обработка одномерных массивов. Сортировка массивов
Здравствуйсте! Помогите пожалуйста написать программу! В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)...

Обработка одномерных массивов
При заданных XT,YT, абциссах X1,X2,..,Xn и ординатах Y1,Y2,..,Yn n точек плоскости XOY определить,в каком числе случаев расстояние...

7
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
14.02.2018, 20:12
Лучший ответ Сообщение было отмечено gaard9n как решение

Решение

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
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
 
int main()
{
    setlocale(NULL, "Rus");
    int k = 0;
    const int r = 4;
    int x[r];
    for (int i = 0; i < r; i++)
    {
        cout << "Заполните " << i + 1 << "-й" << " элемент массива: "; cin >> x[i];
    }
    int min = INT_MAX; //вот и всё
    for (int i = 0; i < r; i++)
        if ((x[i] > 0) && (x[i] < min)) { min = x[i]; }
    cout << endl;
    cout << "Наименьший положительный элемент массива: " << min << endl;
    cout << endl;
    system("pause");
    return 0;
}
1
0 / 0 / 1
Регистрация: 09.01.2018
Сообщений: 30
14.02.2018, 20:43  [ТС]
Цитата Сообщение от Hitoku Посмотреть сообщение
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
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
 
int main()
{
    setlocale(NULL, "Rus");
    int k = 0;
    const int r = 4;
    int x[r];
    for (int i = 0; i < r; i++)
    {
        cout << "Заполните " << i + 1 << "-й" << " элемент массива: "; cin >> x[i];
    }
    int min = INT_MAX; //вот и всё
    for (int i = 0; i < r; i++)
        if ((x[i] > 0) && (x[i] < min)) { min = x[i]; }
    cout << endl;
    cout << "Наименьший положительный элемент массива: " << min << endl;
    cout << endl;
    system("pause");
    return 0;
}
Допустим, так разве не подойдёт? Только я вот не совсем понимаю, что творится в строчке с "флагом" (flag = !flag) там, где начинается условие.
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
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
 
int main()
{
    setlocale(NULL, "Rus");
    int k = 0;
    const int r = 9;
    int x[r];
    int min = x[0];
    bool flag = true;
    for (int i = 0; i < r; i++)
    {
        cout << "Заполните " << i + 1 << "-й" << " элемент массива: "; cin >> x[i];
        if (x[i] > 0 && flag) {
            min = x[i];
            flag = !flag;
        }
        if ((x[i] >= 0) && (x[i] < min)) { min = x[i]; }
    }
    cout << endl;
    cout << "Наименьший положительный элемент массива: " << min << endl;
    cout << endl;
    system("pause");
    return 0;
}
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
14.02.2018, 23:20
12-ю строку долой. В этом условии min присваивается первое значение и flag становится false, когда первое значение найдено.
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.02.2018, 01:43
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int x[9], k=0, min=0;    
    
    for (int i = 0; i < 9; i++)
    {
        cout << "Заполните " << i + 1 << "-й" << " элемент массива: "; cin >> x[i];
        if (x[i] > 0) k++;
        if ((x[i] > 0) && (k==1 || x[i]<min)) min=x[i];        
    }    
    cout << "Наименьший положительный элемент массива: " << min << endl;    
    system("pause");
    return 0;
}
1
0 / 0 / 1
Регистрация: 09.01.2018
Сообщений: 30
15.02.2018, 11:15  [ТС]
Цитата Сообщение от Hitoku Посмотреть сообщение
12-ю строку долой. В этом условии min присваивается первое значение и flag становится false, когда первое значение найдено.
12-ю строку? Без неё компилятор выдаст ошибку, мол необъявленный идентификатор. Как быть?
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
15.02.2018, 11:29
gaard9n, можно просто
C++
12
int min;
а то присваивать x[0] - бесполезное действие, т.к. массив ещё не заполнен в этот момент
1
0 / 0 / 1
Регистрация: 09.01.2018
Сообщений: 30
15.02.2018, 13:36  [ТС]
Цитата Сообщение от Hitoku Посмотреть сообщение
gaard9n, можно просто
C++
12
int min;
а то присваивать x[0] - бесполезное действие, т.к. массив ещё не заполнен в этот момент
Понял. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2018, 13:36
Помогаю со студенческими работами здесь

Обработка одномерных массивов С++
Написать программу решения задачи, используя оператор цикла FOR. Значения элементов массива ввести с клавиатуры или задать с помощью...

Обработка одномерных массивов
Помогите пожалуйста с написанием программы. ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ: 1. Сформировать массив с помощью датчика случ. чисел ...

Обработка одномерных массивов С++
Написать программу решения задачи, используя оператор цикла FOR. Значения элементов массива ввести с клавиатуры или задать с помощью...

Обработка одномерных массивов

Обработка одномерных массивов
1. a) Одномерный массив из 5 элементов целого типа в диапазоне ; b) Дополнить исходный массив, начиная с третьего номера, пятью...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru