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

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

Восстановить пароль Регистрация
 
SaufeR
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 10
24.12.2010, 10:28     С++ структуры (не могу найти ошибку) #1
Нужно ввести кол-во спортсменов и их средний балл, затем установить пропускной балл в финал соревнований и вывести на экран спортсменов финалистов.
Код компилируется, но работает не правильно =(
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2010, 10:28     С++ структуры (не могу найти ошибку)
Посмотрите здесь:

C++ Не могу найти ошибку!
C++ Структуры. Помогите найти ошибку в программе
C++ Динамические структуры. Стек (помогите найти ошибку)
Не могу найти ошибку C++
C++ Не могу найти ошибку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NNN777
299 / 157 / 19
Регистрация: 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;
SaufeR
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 10
24.12.2010, 10:59  [ТС]     С++ структуры (не могу найти ошибку) #3
можно сделать так?
Да, так действительно лучше. Теперь нормально работает, только при выводе финалистов вместо их имен выводятся иероглифы =( Это конечно не обязательно, но как сделать чтоб их имена выводились такими какими я их ввел?
CyberHunter
12 / 12 / 1
Регистрация: 03.08.2010
Сообщений: 61
24.12.2010, 11:04     С++ структуры (не могу найти ошибку) #4
Цитата Сообщение от SaufeR Посмотреть сообщение
Да, так действительно лучше. Теперь нормально работает, только при выводе финалистов вместо их имен выводятся иероглифы =( Это конечно не обязательно, но как сделать чтоб их имена выводились такими какими я их ввел?
Самый простой на мой взгляд способ заставить прогу выражаться на русской - отредактировать в ультраедите (проставить оем-кодировку и написать)
Я делаю так)
Хотя, тут на форуме много это обсуждалось, как сменить локаль, например.
Yandex
Объявления
24.12.2010, 11:04     С++ структуры (не могу найти ошибку)
Ответ Создать тему
Опции темы

Текущее время: 09:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru