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

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

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

Неверный ввод в структуру - C++

15.06.2016, 11:05. Просмотров 128. Ответов 6
Метки нет (Все метки)

Требуется написать программу с описанием структуры STUDENT с полями Фамилия и инициалы, номер группы и массив из 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
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <iomanip>
 
using namespace std;
 
struct student
{char fio[50];
int num;
int u[4];
};
 
int main()
{student b;
student a[10];
const int n=3;
int i=0,j=0;
//ввод
for(i=0;i<n;i++)
  {
    cout<<"FAM: ";
    cin>>a[i].fio; 
    if (i!=0) cin.ignore();
    cout<<"GROUP: ";
    cin>>a[i].num; 
    cout<<"USPEVAEMOST"<<endl;
    for(j=0;j<5;j++)
      {cout<<"U"<<j+1<<": ";  
      cin>>a[i].u[j]; 
      cin.ignore(); } 
  cout<<endl; 
  } 
cout<<endl;
cout<<"-----------------OUTPUT-----------------"<<endl;
cout<<endl;  
for(i=0;i<n;i++)
  cout<<left<<setw(15)<<a[i].fio<<setw(15)<<a[i].num<<setw(8)<<a[i].u[0]<<setw(8)<<a[i].u[1]<<setw(8)<<a[i].u[2]<<setw(8)<<a[i].u[3]<<setw(8)<<a[i].u[4]<<endl;
 cout<<endl;
cout<<"----------------------------------------"<<endl;
cout<<endl;  
  
b=a[0];
int p=0;
cout<<endl;
cout<<"------------------SORT------------------"<<endl;
cout<<endl;
//сортировка
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
      if (a[i].num>a[j].num) 
       {b=a[i];
        a[i]=a[j];
        a[j]=b;
            }
            
//вывод
cout<<left<<setw(15)<<"FAM"<<setw(15)<<"GROUP"<<endl;
for(i=0;i<n;i++)
cout<<left<<setw(15)<<a[i].fio<<setw(15)<<a[i].num<<endl;
cout<<endl;
cout<<"----------------------------------------"<<endl;
cout<<endl;
 
cout<<endl;
cout<<"--------------SREDNII BALL--------------"<<endl;     
cout<<endl;  
//средний балл
float s=0; int t=0;
cout<<left<<setw(15)<<"FAM"<<setw(15)<<"GROUP"<<setw(15)<<"SR BALL"<<endl;
for(i=0;i<n;i++)
  {s=(a[i].u[0]+a[i].u[1]+a[i].u[2]+a[i].u[3]+a[i].u[4])/5;
  cout.precision(2); 
  if (s>4) {cout<<left<<setw(15)<<a[i].fio<<setw(15)<<a[i].num<<setw(15)<<s<<endl; t++;}
  if (t==0) cout<<"Takih studentov net."<<endl;
  }
cout<<endl;
cout<<"----------------------------------------"<<endl;
cout<<endl;
getch(); return 0;}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2016, 11:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неверный ввод в структуру (C++):

Ввод данных в структуру через указатель на структуру - C++
#include &quot;stdafx.h&quot; #include &quot;ctime&quot; #include &quot;iostream&quot; #pragma warning(disable : 4996) using namespace std; class...

неверный ввод - C++
cout&lt;&lt;&quot;\tViberite variant vvoda:\n\n&quot;; cout&lt;&lt;&quot;\t1.Vvod vruchnuy\n&quot;; cout&lt;&lt;&quot;\t2.Iz faila&quot;; int menu=0; ...

Неверный ввод в файл - C++
Доброго времени суток! Написал программу, которая должна: 1. Считывать имя файла, определённое пользователем, производить запрос чисел...

Почему-то всегда выдаёт неверный ввод - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string.h&gt; using namespace std; int main() { int cancel_program; ...

Ввод в структуру - C++
Здравствуйте, необходимо реализовать некоторую задумку, суть: Идет запись структуры и на некотором элементе предлагается некий выбор...

Автоматический ввод в структуру - C++
Здравствуйте, интересует вопрос, как можно сделать автоматический ввод в структуру, объясню на примере: Нужно заполнить структуру вида:...

6
panditmee
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 12
15.06.2016, 11:08  [ТС] #2
На картинке - вместо последней оценки что-то другое выводится. У последнего студента все нормально.
0
Миниатюры
Неверный ввод в структуру  
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
15.06.2016, 11:17 #3
Откуда там "меньше 5", если оценок всего 4?
0
panditmee
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 12
15.06.2016, 11:18  [ТС] #4
5 оценок - u[0], u[1], u[2], u[3], u[4]. Строго меньше 5 - от 0 до 4.
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
15.06.2016, 11:23 #5
Где здесь 5 оценок?
C++
1
2
3
4
5
6
struct student
{
char fio[50];
int num;
int u[4];
};
0
panditmee
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 12
15.06.2016, 11:28  [ТС] #6
В С++ массив a[n] задается индексами от 0 до n - (n+1) элемент.

Добавлено через 3 минуты
Исправила на u[5] - ошибка ушла. Спасибо!!! Видимо, последний элемент зарезервирован под адрес ячейки.
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
15.06.2016, 11:40 #7
Цитата Сообщение от panditmee Посмотреть сообщение
Видимо, последний элемент зарезервирован под адрес ячейки.
Что?
При описании массива ты указываешь размер - 4, значит индексы при обращении к элементам будут 0...3.
0
15.06.2016, 11:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2016, 11:40
Привет! Вот еще темы с ответами:

Ввод чисел в структуру вектор - C++
Вот готовая программа, которая выводит какие точки могут быть вершинами квадрата, но столкнулся с тем, что не знаю как сделать ввод...

Ввод данных в структуру из файла - C++
Народ, помогите разобраться. В общем есть структура следующего вида: struct Employees { char Surname; char Name; char...

Ввод/вывод данных в структуру - C++
Доброго времени суток уважаемые форумчане. Подскажите есть у меня такое вот задание: Обеспечить хранение информации о каждой книге (не...

Не работает ввод данных в структуру - C++
Не работает ввод данных в структуру. Программа вылетает при первом вводе. #include &lt;iostream&gt; using namespace std; struct...


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

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

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