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

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

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

вопрос по структурам - C++

15.02.2010, 16:21. Просмотров 426. Ответов 3

Я начал писать программу на следующию задачу Описать структуру с именем STUDENT, содержащую следующие поля:
-Фамилия и инициалы
-Номер группы
-Успеваемость(массив из 5ти элементов).
Написать программу выполняющую следующие действия:
-Ввод с клавиатуры данных в массив, состоящий из 10ти структур типа STUDENT:записи должны быть упорядочены по возрастанию среднего балла;
-Вывод на дисплей Фамилий и номеров групп для всех студентов имеющих оценки 4 и 5
-если таких студентов нет, вывести соответствующее сообщение.
Я начал писать. Объявил структуру дошло дело до заполнения и тут у меня ошибка которую не как не могу понять вот код:
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"
int _tmain(int argc, _TCHAR* argv[])
{setlocale (0,"Russian");
const int l_name=30,l_num=5,l_ysp=5;
struct STUDENT
{
    char name[l_name], num[l_num];
    int ysp;
};
const int l_dbase=11;
STUDENT dbase[l_dbase];
for(int i=1;i<l_dbase;i++)
{
    cout<<"Введите Ф.И.О. Студента №"<<i<<endl;
    cin.getline(dbase[i].name, 30);// вот эта строчка
    cout<<"Введите Нормер группы Студента №"<<i<<endl;
    cin.getline(dbase[i].num, 5);
    cout<<"Введите 5 оценок Студента №"<<i<<endl;
    for(int z=0;z<l_ysp;z++)
        {
            cin>> dbase[z].ysp;
        }
}
 
system("pause");
    return 0;
}
Строчка которую я прокоментировал выполняется в цикле только 1 первый раз а потом просто пропускается. Подскажите пожалуйста почему так и как это исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2010, 16:21     вопрос по структурам
Посмотрите здесь:

Вопрос по структурам - C++
Насколько я знаю можно заполнить структуру &quot;наложив её на память&quot;, например struct A { int a; char b; char c; } ...

Вопрос по структурам - C++
Всем доброго дня. Возникло парочку вопросов по изучению С++ подскажите если не сложно. Купил книгу Дейтела &quot;Как програмировать на С++&quot;...

вопрос по структурам - C++
Задача.На основе данных входного файла составить список студентов,включающий фамилию,факультет, курс, группу, 5 оценок. Вывести в новый...

небольшой вопрос по структурам - C++
Плиз, подскажите как присвоить значение переменной(index) элементу массива структуры(avto.chet). Вроде бы ерунда, а не получается.

Задачка по структурам - C++
Добрый вечер! Есть такая задачка... С помощью структуры соорудить что-то типа базы данных. Три поля (имя,фамилия, возраст).Ввод с...

задание по структурам - C++
Вот задача Создать структуру с именем employee, содержащую два поля: номер со¬трудника типа int и величину его пособия в долларах типа...

программа по структурам - C++
помогите написать программу В файл base.txt поместить информацию о писателях и их произведениях (20…30 наименований), например: ...

задания по структурам - C++
помогите пожалуйста новичку... буду ОЧЕНЬ благодарен

проги по структурам на С++ - C++
1)даны координаты трех точек, проверить лежат ли точки на одной прямой, если лежат, то определить является ли какая-либо из точек серединой...

Прога по Структурам - C++
Ни могу понять как в массив забить рациональное число((( Вот задание: Ввести структуру (с полями числитель и знаменатель) для описания...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
15.02.2010, 16:40     вопрос по структурам #2
перед cin.getline();
вставь cin.ignore();
и будет тебе счастье.
а вообще, на форуме подобные темы постоянно обсуждаются, можно было воспользоваться поиском.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
15.02.2010, 16:43     вопрос по структурам #3
Цитата Сообщение от CrazyMamba Посмотреть сообщение
-Успеваемость(массив из 5ти элементов).
если успеваемость у тебя массив, то и объявляй ее массивом:
C++
1
int ysp[l_ysp];
А теперь по ошибкам:
  1. for(int i=1;i<l_dbase;i++)
    Индексация массивов в C/C++ начинается с нуля, а у тебя первый элемент массива структур здесь пропускается. Надо так:
    C++
    1
    
    for(int i=0;i<l_dbase;i++)
  2. cout<<"Введите 5 оценок Студента №"<<i<<endl;
    for(int z=0;z<l_ysp;z++)
    {
    cin>> dbase[z].ysp;
    }
    Здесь по идее ты должен инициализировать массив оценок. Но он у тебя вообще не объявлен (см. выше), и, кроме того, в цикле ты проходишь не по массиву оценок, а по массиву структур. Этот участок нужно делать так:
    C++
    1
    2
    3
    4
    5
    
    cout<<"Введите 5 оценок Студента №"<<i<<endl;
            for(int z=0;z<l_ysp;z++)
                    {
                            cin>> dbase[i].ysp[z];
                    }
CrazyMamba
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 40
15.02.2010, 17:03  [ТС]     вопрос по структурам #4
Всем спасибо советы помогли. буду писать дальше.
Yandex
Объявления
15.02.2010, 17:03     вопрос по структурам
Ответ Создать тему
Опции темы

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