Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 19:07   #1
druger
Пользователь
 
Регистрация: 18.09.2011
Сообщений: 31
По умолчанию Сортировка в структурах[C++]

Помогите с сортировкой. Мне нужно отсортировать спортсменов по возрастанию их среднего балла
Я сделал с помощью простой вставки. Сам алгоритм знаю. Но запутался какому массиву, что присваивать.
Вот код
Код:
#include<iomanip.h>
#include<fstream.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>

ifstream Fin;
ofstream Fout;
const int m=6;
struct Sportsmen
 {
  char Fam[11];
  char Dolgn[14];
  float Ball[m];
 };
void input (Sportsmen &T)
 {
  Fin>>T.Fam>>T.Dolgn;
  for (int j=0; j<m; j++)
   Fin>>T.Ball[j];
 }
void output (Sportsmen T)
 {
  Fout<<setw(10)<<T.Fam<<" "<<setw(15)<<T.Dolgn;
  for (int j=0; j<m; j++)
   Fout<<setw(4)<<T.Ball[j];
   Fout<<endl;
 }

float SrBall (Sportsmen T)
 {
   float Sr=0;
   for (int j=0; j<m; j++)
   Sr+=T.Ball[j];
   return Sr/m;
 }
void InsertSort (float Ball[],int m,Sportsmen T)
 {
  for (int i=1; i<m; i++)
   {
    float x=SrBall[i];
    for (int j=i-1; j>=0 && SrBall[j]>x; j++)
     SrBall[j+1]=SrBall[j];
    SrBall[j+1]=x;
   }
  }

void main ()
{
 Sportsmen S[50];
 Fin.open("Z:\\STRUCT\\DATA.cpp");
  if (Fin.fail())
   {
   cout<< "\n input file is not open \n";
   exit(1);
   }
 int k=0;
 while (!Fin.eof())
  input (S[k++]);
  k--;
 Fin.close();
 InsertSort(SrBall,m);
 Fout.open("Z:\\STRUCT\\SORT.txt");
  if (Fout.fail())
   {
    cout <<"\n created file is not open\n";
    exit(1);
   }
 for (int i=0; i<k; i++)
  output (S[i]);
 Fout.close();
Вот файл
Код:
Ololoev swimer 20 15 18 19.5 17 20
Troler troling 20 19 17 20 14 20
Djigurda sport_dancer 15 14 10 5 7 3.5
Mentov footballer 5.5 4 2 1 1 1
Ravshan skier 3 8 6 12 16 14
Djamshut bobsledder 3 3 1 2 2.5 1.5
Putin karatist 19 20 19 13 9 8
Mevdedev judoist 18.5 17.5 19.5 11 4 20
Makarov athlete 13 15 11.5 14.5 9 18
Syvorov biathlete 7 0 3 9 8 2
druger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не совсем понял пример в методичке о структурах (С++) severest Общие вопросы C/C++ 1 18.04.2011 20:01
Работа с файлами в структурах ХреновыйПрогер Общие вопросы C/C++ 5 23.12.2010 21:46
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Массивы и структуры в структурах (Задача в С++) bel_ka Общие вопросы C/C++ 4 16.12.2007 15:31