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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 13:11   #1
*stRong*
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 47
По умолчанию Массивы C++

Всем привет! У меня не получается решить задачу:
Имеется список спортсменов, учавствующих в соревнованиях по прыжкам в длину, и их результаты. Составить программу, которая позволит вывести список участников на экран в порядке занятых ими мест.

Вот что я накатал:
Код:
#include<iostream>
using namespace std;

main()
{
int N=0, mas[N], i,j,t;

cout<<"Введите кол-во спортсменов: ";
cin>>N;
char name[N][N*20];

for (i=0;i<N;i++)
    {
     cout<<"Введите фамилию "<<i+1<<" спортсмена: ";
     cin>>name[i];
     cout<<"Введите рез-ты "<<i+1<<" спортсмена: ";
     cin>>mas[i];
    }

for (i=0;i<N;i++)
   for (j=0;j<N-1;j++)
      if (mas[j]>mas[j+1])
        { 
          t = mas[j];
          mas[j]=mas[j+1];
          mas[j+1]=t;
        }
      
    
cout<<endl<<endl;  


for(i=0;i<N;i++)
cout<<name[i]<<"  "<<mas[i]<<endl;



cout<<endl<<endl;
system("pause");
}
Проблема в том, что результаты-то сортируются, но вот положение фамилий остается в том же порядке. Как привязать фамилии к результатам?

Последний раз редактировалось Stilet; 19.12.2010 в 14:59.
*stRong* вне форума Ответить с цитированием
Старый 19.12.2010, 14:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,718
По умолчанию

структуры....
p51x вне форума Ответить с цитированием
Старый 19.12.2010, 14:12   #3
*stRong*
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 47
По умолчанию

Цитата:
структуры....
А можно, пожалуйста, поподробней?

Неужели никто не может помочь решить задачку для первого курса?

Последний раз редактировалось Stilet; 19.12.2010 в 15:03.
*stRong* вне форума Ответить с цитированием
Старый 19.12.2010, 15:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тебе нужно составить массив структур с именами и результатами и их отсортировать.
Посмотри здесь среди примеров:http://yandex.ua/yandsearch?date=&te...d=769&lr=20554
Это уже обсуждалось много раз. Почитай про инструкцию struct в Си
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.12.2010, 15:39   #5
*stRong*
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 47
По умолчанию

Вобщем попробовал сделать через структуры, но так как мы их не проходили, то я похоже сделал что-то не так... Результат тот же, фамилии отдельно, результаты отдельно.
Код:
#include<iostream>
using namespace std;
int N=0, i,j,t;

struct sport
{
  char name[5][200];
  int mas[5];
};

main()
{
sport s;
s.name[5][200];
s.mas[5];

 
//cout<<"Ââåäèòå êîë-âî ñïîðòñìåíîâ: ";
//cin>>N;

for (i=0;i<5;i++)
    {
     cout<<"Ââåäèòå ôàìèëèþ "<<i+1<<" ñïîðòñìåíà: ";
     cin>>s.name[i];
     cout<<"Ââåäèòå êîë-âî áàëëîâ "<<i+1<<" ñïîðòñìåíà: ";
     cin>>s.mas[i];
    }

for (i=0;i<5;i++)
   for (j=0;j<5-1;j++)
      if (s.mas[j]>s.mas[j+1])
        { 
          t = s.mas[j];
          s.mas[j]=s.mas[j+1];
          s.mas[j+1]=t;
        }
      
    
cout<<endl<<endl;  


for(i=0;i<5;i++)
cout<<s.name<<" "<<s.mas<<endl;



cout<<endl<<endl;
system("pause");
}
From Stilet: попрошу код выделять тегом по кнопке #

Последний раз редактировалось Stilet; 19.12.2010 в 15:55.
*stRong* вне форума Ответить с цитированием
Старый 19.12.2010, 15:50   #6
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Стракт надо было делать не так , а вот так :

Код:
struct sport
{
char name[200];
int mas;
};
А потом уже делать массив страктов по количеству спортсменов , тогда ты будешь упорядочивать не только места , но и имя вместе .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 19.12.2010, 18:50   #7
*stRong*
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 47
По умолчанию

Цитата:
А потом уже делать массив страктов по количеству спортсменов , тогда ты будешь упорядочивать не только места , но и имя вместе .
Не совсем понял, как это сделать... Если Вас не затруднит, можно объяснить подробнее?
*stRong* вне форума Ответить с цитированием
Старый 19.12.2010, 18:56   #8
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от *stRong* Посмотреть сообщение
Не совсем понял, как это сделать... Если Вас не затруднит, можно объяснить подробнее?
Как ты создаешь массив int ? Вот тоже самое , только вместо int , используй свой стракт ! Понятно ?

Код:
struct sport
{
char name[200];
int mas;
};
Код:
sport s[5];
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось andrewpalkin; 19.12.2010 в 18:59.
andrewpalkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Массивы на С++ Qwerik Помощь студентам 0 05.04.2010 16:49
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы в VB ТРОЯН=) Помощь студентам 0 23.11.2009 21:28