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

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

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

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

15.02.2010, 16:21. Просмотров 443. Ответов 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 первый раз а потом просто пропускается. Подскажите пожалуйста почему так и как это исправить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2010, 16:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вопрос по структурам (C++):

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

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

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

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

Программа по структурам! - C++
У меня такая задача: Ввести несколько структур типа «Товары на складе» с полями { название товара закупочная цена товарная...

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

3
Patch
2277 / 492 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
15.02.2010, 16:40 #2
перед cin.getline();
вставь cin.ignore();
и будет тебе счастье.
а вообще, на форуме подобные темы постоянно обсуждаются, можно было воспользоваться поиском.
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
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];
                    }
0
CrazyMamba
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 40
15.02.2010, 17:03  [ТС] #4
Всем спасибо советы помогли. буду писать дальше.
0
15.02.2010, 17:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2010, 17:03
Привет! Вот еще темы с ответами:

влпрос по структурам - C++
есть код #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; #include &lt;malloc.h&gt; struct data { float key; float...

Курсовая по структурам - C++
Подскажите какую-нибудь интересную тему для курсовой. Главная тема сема списки и структуры , можно с уклоном на тему безопасности. Спасибо

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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