0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 10
1

С++ структуры (не могу найти ошибку)

24.12.2010, 10:28. Показов 522. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно ввести кол-во спортсменов и их средний балл, затем установить пропускной балл в финал соревнований и вывести на экран спортсменов финалистов.
Код компилируется, но работает не правильно =(
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
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std; 
 
struct SPORTSMAN
{
   char fio[30];
   int s_ball;
   int p_s_ball;
};
int main()
{
   int n,i;
   SetConsoleOutputCP(1251);
   cout<<"Ââåäèòå êîëè÷åñòâî ñïîðòñìåíîâ: ";
   cin>>n;
 
   SPORTSMAN *ved; 
   ved = new SPORTSMAN[n]; 
   for(int i=0;i<n;i++)
   {
     cout<<"Ñïîðòñìåí ¹ "<<i<<"\n";
     cout<<"Ââåäèòå Ô.È.Î. ñïîðòñìåíà: \n";
     cin>>ved[i].fio;
     cout<<"Ââåäèòå ñðåäíèé áàëë ñïîðòñìåíà: \n";      
     cin>>ved[i].s_ball;
   }
   cout<<"Ââäèòå ìèíèìàëüíûé ïîïóñêíîé áàëë: \n";
   cin>>ved[i].p_s_ball;
   cout<<"|---------------|---------------|\n";
   cout<<"|----- Ñïîðòñìåíû ôèíàëèñòû ----|\n";
   cout<<"|---------------|---------------|\n";
   cout<<"| Ôàìèëèÿ È.Î.  | Ñðåäíèé áàëë  |\n";
   cout<<"|---------------|---------------|\n";
   for(int i=0;i<n;i++)
   {
        if(ved[i].s_ball > ved[i].p_s_ball)    
        cout<<"| "<<ved[i].fio<<"\t\t"<<ved[i].s_ball<<endl;
   }
   getch();
   delete [] ved; 
   return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2010, 10:28
Ответы с готовыми решениями:

C++. Списки. Необходимо удалить элементы структуры. Не могу найти ошибку
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; void EnterF(int...

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два...

Не могу найти ошибку. Нажимаю на клавишу, выдает ошибку
uses ABCObjects,GraphABC; const Image_0 = '0_765e9_6a3e424a_S.png'; var...

Не могу найти ошибку в программе(для просмотра картинок):кнопка НАЗАД не работает(не становится активной) Найдите ошибку.

3
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
24.12.2010, 10:43 2
SaufeR, вы уверены, что структура должна выглядеть именно так
C++
1
2
3
4
5
6
struct SPORTSMAN
{
   char fio[30];
   int s_ball;
   int p_s_ball; //зачем каждому спортсмену в структуру заносить значение, одинаковое для всех?
};
?
можно сделать так
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
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std; 
 
struct SPORTSMAN
{
   char fio[30];
   int s_ball;
   //int p_s_ball;
};
int main()
{
   int n,i, sr_ball;
   SetConsoleOutputCP(1251);
   cout<<"Введите количество спортсменов: ";
   cin>>n;
 
   SPORTSMAN *ved; 
   ved = new SPORTSMAN[n]; 
   for(int i=0;i<n;i++)
   {
     cout<<"Спортсмен № "<<i<<"\n";
     cout<<"Введите Ф.И.О. спортсмена: \n";
     cin>>ved[i].fio;
     cout<<"Введите средний балл спортсмена: \n";      
     cin>>ved[i].s_ball;
   }
   cout<<"Ввдите минимальный попускной балл: \n";
   cin>>sr_ball;
   cout<<"|---------------|---------------|\n";
   cout<<"|----- Спортсмены финалисты ----|\n";
   cout<<"|---------------|---------------|\n";
   cout<<"| Фамилия И.О.  | Средний балл  |\n";
   cout<<"|---------------|---------------|\n";
   for(int i=0;i<n;i++)
   {
        if(ved[i].s_ball >= sr_ball)    
        cout<<"| "<<ved[i].fio<<"\t\t"<<ved[i].s_ball<<endl;
   }
   getch();
   delete [] ved; 
   return 0;
}
Но если все-таки это поле структуры обязательное по заданию, то нужно заполнить его для всех спортсменов
C++
1
2
3
4
cout<<"Ввдите минимальный попускной балл: \n";
    cin>>sr_ball;
    for (i=0; i<n; i++)
        ved[i].p_s_ball=sr_ball;
1
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 10
24.12.2010, 10:59  [ТС] 3
можно сделать так?
Да, так действительно лучше. Теперь нормально работает, только при выводе финалистов вместо их имен выводятся иероглифы =( Это конечно не обязательно, но как сделать чтоб их имена выводились такими какими я их ввел?
0
13 / 13 / 1
Регистрация: 03.08.2010
Сообщений: 61
24.12.2010, 11:04 4
Цитата Сообщение от SaufeR Посмотреть сообщение
Да, так действительно лучше. Теперь нормально работает, только при выводе финалистов вместо их имен выводятся иероглифы =( Это конечно не обязательно, но как сделать чтоб их имена выводились такими какими я их ввел?
Самый простой на мой взгляд способ заставить прогу выражаться на русской - отредактировать в ультраедите (проставить оем-кодировку и написать)
Я делаю так)
Хотя, тут на форуме много это обсуждалось, как сменить локаль, например.
1
24.12.2010, 11:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2010, 11:04
Помогаю со студенческими работами здесь

Не могу найти ошибку!! не могу не как разобраться! надо до завтра.
условие: Для 7 человек, среди которых есть мужчины и женщины, хранятся следующие данные: имя, пол...

Структуры. Найти ошибку
Выдает ошибку &quot;использована неинициализированная переменная &quot;а&quot; в main. И как посчитать количество...

Не могу разобраться с If-ами. Не могу найти ошибку
Только начал знакомство с программированием. Преподаватель задал задание, написать программу в VLC...

Найти ошибку в объявлении структуры
Здравствуйте!Задание найти ошибку в к следующем коде в строке 1,2,3 или 4. Мне кажется все верно,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru