Модераторы: PILOT
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка массива (файла) по числам, не трогая им, есть код на С, надо переделать на ява 
:(
    Опции темы
ddj
Дата 10.3.2010, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 26.2.2008

Репутация: нет
Всего: 1



Добрый день, написал программу на С, сечас хочу переделать её на яву.
Идея: Есть сервер и клиент (ето неважно) сервер посылает вопросы, клиент отвечает.
После результаты ответов и имя играка записываютсья в файл. Далее етот файл сортируется и выписывается ТОП
Сортировка по числам, ненарушая позиции имени. Вот код на С: 

Код

struct zmogus  // igrok
{
   int data; 
   char vardas[30];  //imja
};

struct node    
{    
   struct node *next, *prev;    
   struct zmogus duomuo; 
};     

//-----------------------------------------------//    
int Isarasa (struct node **inNodeBeg, struct node **inNodeEnd, int data, char *vardas)    // vspisok
{    
   struct node *pNode= (struct node*)malloc (sizeof (struct node));    
   pNode->next= NULL;    
   pNode->prev= NULL;    
   pNode->duomuo.data= data; 
   strcpy(pNode->duomuo.vardas, vardas);
   if (*inNodeBeg == NULL)    
   {    
      (*inNodeBeg)= (*inNodeEnd)= pNode;    
   }    
   else    
   {    
      pNode->prev= *inNodeEnd;    
      (*inNodeEnd)->next= pNode;    
      *inNodeEnd= pNode;    
   }    
   return 0;    
}    
//-----------------------------------------------//    
int Issaraso (struct node *inNodeBeg,char *Buffer2)    // izspiska
{    
   int tmp=0;
   
   struct node *pNode= inNodeBeg;    
   while (pNode)    
   {    
      printf ("%s %d \n", pNode->duomuo.vardas, pNode->duomuo.data);
      if (strlen(pNode->duomuo.vardas)+10+tmp >= BUFFER_SIZE)  
      return 0;    
      tmp += sprintf(Buffer2+tmp,"%s %d \n", pNode->duomuo.vardas , pNode->duomuo.data);   // otsylaem klientu
     // send_line(new_fd, (char*) &teisingu);
      pNode= pNode->next;  
        
   }    
   printf ("\n");    
   return 0;    
}    
//-----------------------------------------------//    
int Is_saraso_ifaila (const char *inFileName, const char *inMode, struct node *inNodeBeg) // iz spiska v fajl 
{    
     
   FILE *f= fopen (inFileName, inMode);
   struct node *pNode= inNodeBeg; 
   while (pNode)    
   {    
      fprintf (f, "%s %d\n", pNode->duomuo.vardas, pNode->duomuo.data);
      pNode= pNode->next;    
   }    
   fclose (f);    
   return 0;    
}    
 
//-----------------------------------------------//    
int listDel (struct node *inNodeBeg)    
{    
   if (inNodeBeg == NULL)  
    
   {    
      return 1;    
   }    
   struct node *pNode= inNodeBeg;    
   while (pNode)    
   {    
      pNode= pNode->next;    
      free (inNodeBeg);    
      inNodeBeg= pNode;    
   }    
   return 0;    
}    

//-----------------------------------------------//  

void mySort(struct node *inNodeEnd)
{
     struct node *a, *b;
     struct zmogus tmp;

     while (inNodeEnd->prev != NULL)
     {
        a = inNodeEnd;
        b = inNodeEnd->prev;
        while (b != NULL) 
        {
            if ((b->duomuo.data) < (a->duomuo.data))
            {
                a = b;
            }
            b = b->prev;
        }
        
        tmp = inNodeEnd->duomuo;
        inNodeEnd->duomuo = a->duomuo;
        a->duomuo = tmp;
        
        inNodeEnd = inNodeEnd->prev;
    }
}


Или может как небудь просче можно ?
PS: Пишу программу не на русском, так в коментах поместил русские названия. Спасибо.
--------------------
#iddj
PM MAIL   Вверх
bsa
Дата 10.3.2010, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



ddj, интересно, а почему названия не на английском? Это как бы правило хорошего тона, называть все элементы программы используя английский...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Объявления о найме специалистов"
BearBeer
  • Придерживайтесь правил форума.

  • Если вы предлагаете НЕ удалённую работу, то

    название города и фирмы обязательно указывать уже в названии темы(!)

  • Одна вакансия - одна тема.

    Вам будет удобней следить за ответами, ищущим работу - выбирать.


  • В случае, если у нас возникнут обоснованные подозрения

    о неблагонадежности Вашего электронного адреса, ваш аккаунт будет удалён, а доступ к форуму запрещён!


  • Хотите быстрее найти специалиста? Разместите тогда ваше объявление вверху всех страниц сайта! Тогда его будут ежедневно видеть более 4000 программистов! Обратите внимание на верхний левый угол сайта - там вы найдете дополнительные инструкции при клике на линк.

В случае невыполнения данных правил Ваши сообщения могут быть удалены без предупреждения.


Полный спискок правил. С уважением, BearBeer.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Объявления о найме специалистов | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.