Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Liori
4 / 4 / 5
Регистрация: 30.08.2012
Сообщений: 155

Ошибка при поиске значения структуры

04.06.2015, 08:24. Показов 513. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать структуру, которая состоит из следующих элементов - фамилия, имя, отчество, пол, 3 оценки и стипендия. Прочитать их из файла и вывести фамилию, имя, отчество людей, стипндия которых меньше средней более чем на 20% (среднее значение стипендии ситать только по тем, у кого есть стипендия, и.к. она может быть и "-" или "0")
У меня считываются данные, считается среднее значение стипендии, потом 80% от нее, но даже когда я знаю, что в файле у 4х людей стипендия 800, а у одного 20, всё равно его фамилия не выводится на экран, не выводится даже среднее значение стипендии

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 <fstream>
#include <string>
using namespace std;
struct Student
{
    string lastname, firstname, middlename;
    int b_day, b_month, b_year;
    char gender;
    int maths, physics, inf;
    int scholarship;
};
 
int main(int argc, char* argv[])
{
    char point = '.';
    ifstream fin("data.txt");
    if (!fin)
    {
        cout << "Error! File is not found" << endl;
        system("pause");
        return 0;
    }
    int count = 0;
    double avrg_schoolarship=0;
    double avrg_schoolarship_procent=0;
    while (!fin.eof())
    {
        Student st;
        fin >> st.lastname >> st.firstname >> st.middlename;
        fin >> st.gender;
        fin >> st.b_day >> point >> st.b_month >> point >> st.b_year;
        fin >> st.maths >> st.physics >> st.inf;
        fin >> st.scholarship;
        if (st.scholarship >= 1)count++;
        avrg_schoolarship += st.scholarship;
    }
    avrg_schoolarship /= count;
    cout << "Average scholarship: " << avrg_schoolarship;
    avrg_schoolarship_procent = (avrg_schoolarship * 20) / 100;
    cout << "\nAverage scholarship (20%): " << avrg_schoolarship_procent;
    avrg_schoolarship -= avrg_schoolarship_procent;
    cout << "\nAverage scholarship (80%): " << avrg_schoolarship;
    while (!fin.eof())
    {
        Student st;
        fin >> st.lastname >> st.firstname >> st.middlename;
        fin >> st.gender;
        fin >> st.b_day >> point >> st.b_month >> point >> st.b_year;
        fin >> st.maths >> st.physics >> st.inf;
        fin >> st.scholarship;
        if (st.scholarship >= 1 && st.scholarship <= avrg_schoolarship) cout << st.lastname << " " << st.firstname << " " << st.middlename << endl;
    }
    fin.close();
    cout << endl;
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2015, 08:24
Ответы с готовыми решениями:

Ошибка в поиске структуры в файле
Условие: Реализовать задачу с двоичными файлами. Написать функцию, с помощью которой осуществляется первичный ввод информации с...

Ошибка в коде при поиске max и min
В 17,18, 22, 23 пишет ошибку C2440. В 22, 23 пишет ошибку C2446. Подскажите пожалуйста, как правильно сделать. #include...

Усечение константного значения при присвоении значений объектам структуры
Здравствуйте! Есть вот такой код: #include &lt;iostream&gt; using namespace std; struct date { int day; char month; int...

3
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.06.2015, 09:29
Указатель надо в начало файла перемещать перед повторным чтением. Перед 44-й строкой:
C++
1
fin.seekg(0, fin.beg);
1
 Аватар для Liori
4 / 4 / 5
Регистрация: 30.08.2012
Сообщений: 155
04.06.2015, 09:54  [ТС]
nmcf, подскажите еще, пожалуйста, всё ли у меня правильно с вычислением среднего значения scholarship? Почему-то ничего не выводится
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.06.2015, 14:15
Отладчиком смотри. Без файла ничего не понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.06.2015, 14:15
Помогаю со студенческими работами здесь

Ошибка при "Поиске по базе": Run-Time Check Failure #2
Всплывает ошибка при &quot;Поиске по базе&quot; Run-Time Check Failure #2 - Stack around the variable 'A' was corrupted.. В чём может быть проблема?...

Ошибка при передаче структуры
Пишу в тему для начинающих, ибо жестко туплю с данным вопросом. Есть метод: Fuse_Interpretate::clearStruct(PS)//!!!!!!!!!!!! {...

Ошибка при объявлении структуры
Ошибка при объявлении структуры # include &lt;iostream&gt; # include &lt;windows.h&gt; using namespace std; struct MyStruct { int...

Ошибка при объявлении структуры
При компиляции ругается на заголовочный файл: //*************************************************************************** typedef...

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры)
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru