Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/47: Рейтинг темы: голосов - 47, средняя оценка - 4.87
9 / 9 / 3
Регистрация: 14.12.2010
Сообщений: 129

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

24.03.2011, 21:25. Показов 9605. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня в представленном коде, цикл while должен запрашивать ввод массива объектов, и прерываться по достижении конца массива или при вводе пустой строки.
Но, при всем моем старании код не работает должным образом. подскажите, в чем моя ошибка.

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
48
49
50
51
52
53
54
55
56
57
58
#include<iostream>
#include<cstring>
using namespace std;
 
const int Len = 40;
struct golf{
       char fullname[Len];
       int handicap;
};
void setgolf(golf & g, const char * name, int hc);
int setgolf(golf & g);
void handicap(golf & g, int hc);
void showgolf(const golf & g);
 
void setgolf(golf & g,  char * name, int hc)    // перегруженная ф-ия
{
     strcpy(g.fullname, name);
     g.handicap = hc;
}
     
int setgolf(golf & g)                  //заполняем структуру значениями
{
    cout << "Enter fullname: ";        
    cin.get(g.fullname, Len);
    
    if (*(g.fullname) != '\n')    
    {
       cout << "Enter a handicap: ";
       cin >> g.handicap;
       cout << "\n"; 
       return 1;                  //ф-ия возвр. 1, если введены все значения
    }
    else 
       return 0;                      //И 0, если вместо имени введена пустая строка
}
void handicap(golf & g, int hc)
{
     g.handicap = hc;
}
void showgolf(const golf & g)
{
     cout << g.fullname << "\t" << g.handicap;
}
 
 
int main()
{
    golf players[3];
    int i = 0;
    while (setgolf(players[i]) && i < 3 )  //заполняем массив 
    {
        ++i;
        cin.get();
    }
    showgolf(players[1]);
    
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.03.2011, 21:25
Ответы с готовыми решениями:

Ввод элементов массива в цикле
помогите ...нужно написать программу по заданию на картинке 3 вариант отмечен

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#include &quot;stdafx.h&quot; #include &quot;locale.h&quot; #include &quot;stdlib.h&quot; #include &quot;math.h&quot; void main() { setlocale(LC_ALL,&quot;rus&quot;); int...

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

3
126 / 126 / 42
Регистрация: 12.03.2011
Сообщений: 227
25.03.2011, 09:49
C++
1
 while (setgolf(players[i]) && i < 2 )
надо так, а то вы в массив из трёх элементов, помещаете 4.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
25.03.2011, 10:20
Цитата Сообщение от LaГushan Посмотреть сообщение
надо так, а то вы в массив из трёх элементов, помещаете 4.
неверно, так поместиться два элемента.
C++
1
while (i < 3 && setgolf(players[i]))
0
9 / 9 / 3
Регистрация: 14.12.2010
Сообщений: 129
25.03.2011, 13:19  [ТС]
Цитата Сообщение от LaГushan Посмотреть сообщение
C++
1
 while (setgolf(players[i]) && i < 2 )
надо так, а то вы в массив из трёх элементов, помещаете 4.
Вот аналогичный код, который работает верно

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    int arr[3];
    int i = 0;
    while (i < 3)
    {
        arr[i] = 5;
        cout << arr[i] << " ";
        i++;
    }
    cout << endl;
    system("pause");
return 0;
}
т.е. i < 2 не правильное логическое выражение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2011, 13:19
Помогаю со студенческими работами здесь

ввод данных в цикле
Привет. Решил сделать такую задачу: 1.Описать структуру с именем STUDENT, содержащую следующие поля: • NAME – фамилия и инициалы; •...

Ввод строки в цикле
Собственно проблема:при запросе о продолжении цикла ввожу один,и чтобы программа работала корректно сразу после ввода единицы,без...

Простейший ввод числа в цикле
Я, видимо, очень сильно туплю, раз никак не могу понять, почему при &quot;плохом&quot; вводе, т.е. буквы, например, цикл зацикливается. int a; ...

В цикле пропускается ввод данных
В цикле пропускает ввод названия продукта и даты изготовления. Почему и как исправить? #include &lt;iostream&gt; #include...

Не идет ввод и вывод в цикле
Не могу понять почему при проходе этого цикла нет никакого вывода #include &lt;stdio.h&gt; int main() { int countX, countY,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru