С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для Armatus
56 / 56 / 44
Регистрация: 24.03.2016
Сообщений: 378

Функция которая возвращает значение и цикл

13.04.2016, 00:25. Показов 2516. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача функции: Ввод прекращается при наполнении массива либо когда пользователь вводит нечисловое значение и возвращает действительное количество элементов.

Вопрос: почему при любом раскладе sch достигает значения 10? Почему break не прекращает весь цикл, а только ввод?
C++
1
2
3
4
5
6
7
8
9
int fill_array(double a[], int b) {
    int sch = 0;
    for (int i = 0; i < b; i++) {
        if (cin >> a[i], a[i] > 0 || a[i] <= 0)
            sch++;
        else break;
    }
    return sch;
}
Добавлено через 19 минут
Уже и так пробовал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fill_array(double a[], int b) {
    int sch = 0;
    int i = 0;
    cin >> a[i];
    while (a[i] > 0 || a[i] <= 0) {
        sch++;
        i++;
        cin >> a[i];
    }
    cout << sch;
    return sch;
}
Опять я завис на простой задачке.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2016, 00:25
Ответы с готовыми решениями:

Функция, которая только возвращает значение
Как реализовать функцию, которая только возвращает значение. Вот, например: #include &quot;stdafx.h&quot; #include &lt;locale&gt; ...

Функция, которая возвращает значение в классе
Уважаемые, подскажите пожалуйста. У меня есть программа. (созд. списка; различные операции над списком и т.д.) Я пытаюсь ее переделать,...

Функция, которая возвращает требуемое значение
Дан одномерный массив из n чисел. Элементами массива являются случайные целые числа от -10 до 10 включительно. Напишите функцию, которая...

6
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
13.04.2016, 00:36
Лучший ответ Сообщение было отмечено Armatus как решение

Решение

a[i] > 0 || a[i] <= 0 это разве не числовая прямая от минус коммунизма до плюс коммунизма?
1
 Аватар для Armatus
56 / 56 / 44
Регистрация: 24.03.2016
Сообщений: 378
13.04.2016, 00:40  [ТС]
MansMI, ну я пробовал и так:
( мне нужно что бы массив принимал и минусовые значения )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int fill_array(double a[], int b) {
    int sch = 0;
    int i = 0;
    int max = 2147483647;
    int min = max*-1;
    cin >> a[i];
    while (a[i] > min|| a[i] < max) {
        sch++;
        i++;
        cin >> a[i];
    }
    cout << sch;
    return sch;
}
Добавлено через 41 секунду
MansMI, в этом случае программа просто виснет.

Добавлено через 1 минуту
MansMI, во я дурак, нужно же:
C++
1
while (a[i] > min && a[i] < max)
0
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
13.04.2016, 00:51
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int fill(double* a,int n)
{
    int i;
    for(i=0; i<n; i++)
    {
        cout<<i<<":";
        if(!scanf("%lf",a++)) break;
    }
    return i;
}
void main(int argc,char* argv[])
{
    double a[6];
    int n=fill(a,6);
    cout<<n<<endl;
    for(int i=0; i<n; i++) cout<<a[i]<<" ";
    cout<<endl;
    system("pause");
0
 Аватар для Armatus
56 / 56 / 44
Регистрация: 24.03.2016
Сообщений: 378
13.04.2016, 00:56  [ТС]
MansMI,
C++
1
if(!scanf("%lf",a++)) break;
если не трудно объясните значение этой строки. Я никогда не использовал подобное.
0
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
13.04.2016, 01:00
что, не работает? от прародителей, считывание значения на адрес, возвращает количество считанного
0
 Аватар для Armatus
56 / 56 / 44
Регистрация: 24.03.2016
Сообщений: 378
13.04.2016, 01:34  [ТС]
MansMI, Та нет, просто спросил что бы знать, а то я с языком С не знаком, а это как я понял оттуда. Я уже сделал свой код, причем рабочий. Стыдно признаваться но на него у меня ушло около 3-4 часов.

Задача: Программа должна использовать функции для наполнения массива, обращения порядка его элементов, с последующим отображением.

Ответ:
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
#include <iostream>
 
int fill_array(double a[], int b);
void show_array(double a[], int b);
int reverse_array(double a[], int b);
 
using namespace std;
 
int main()
{
    double arr[10];
    show_array(arr, reverse_array(arr, fill_array(arr,10)));
}
 
int fill_array(double a[], int b) {
    int sch = 0;
    int i = 0;
    int max = 2147483647;
    int min = max*-1;
 
    while (cin >> a[i], a[i] > min && a[i] < max && ++sch < b) {
        i++;
    }
 
    return sch;
}
 
void show_array(double a[], int b) {
    int i;
    for (i = 0; i < b; i++)
        cout << a[i] << endl;
}
 
int reverse_array(double a[], int b) {
    int i, j;
    int temp = 0;
    for (i = 0, j = b - 1; i<j; i++, j--) {
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
    return b;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2016, 01:34
Помогаю со студенческими работами здесь

Функция, которая возвращает значение суммы элементов строк
надо чтоб функция возвращала значение суммы строки в конце строки, однако где-то ошибка и получается только значение суммы первой...

Функция, которая возвращает массив
Как сделать так чтобы функция возвращала указатель на рандомно сгенерированный массив. Входящими данными будет количество строк и столбцов...

Функция, которая возвращает массив
Здравствуйте. Подскажите, пожалуйста, как правильно написать код - есть функция; она должна вернуть массив, который создается в этой же...

Функция которая возвращает класс
Есть функция считывания вектора с формы Вызов функции выглядит так Vector1.GetVector(GridOfVector1); CVector...

Функция, которая возвращает структуру
Не поддаётся компиляции. В чём дело? Как с этим работать? Не нашёл ответа и буду благодарен, если объясните и поправите //source.h ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru