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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 27.01.2009, 00:42   #1
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
Стрелка сортировка динамич. струкруты вещественных чисел

Вот напоролся на плохо когда то усвоенный материал и не могу найти ошибку( Программа должна получать с клавы вещественные числа сортировать и выводить на экран.
Суть проблемы: только последнее число выводится вещественным остальные целыми.
Цитата:
2.4
1.5
4.5
6.3
7.2

1 2 4 6 7.2
вот код:
Код:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>

class spisok
{
  private:

   struct Node
   {
     float value;
     Node *next;
   };

  Node *first;
  Node *temp;

  public:

  spisok()
  {
    temp=NULL;
    first=NULL;
  }

  //-------------------------
   void add(float b){
     if (first == NULL)
	{
	    first = new Node;
	    first->value = b;
	    first->next = NULL;
	    temp = first;
	}
	else
	{
	    temp->next = new Node;
	    temp->next->value = b;
	    temp->next->next = NULL;
	    temp = temp->next;
	}
    }
  //-----------------------

    float get()
    {
	while(first!=NULL){

	 float result =first->value;
	 temp->next=first;
	 first=first->next;
	 delete temp->next;
	 return result;
	}
    }

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

  void sort()
  {
  Node* current=first;
  Node* fros=first;
   for(current=first;current!=NULL;current=current->next)
    for(fros=first;fros!=NULL;fros=fros->next)
      if(current->value< fros->value)
      {
	int bufer=current->value;
	current->value=fros->value;
	fros->value=bufer;
      }
  }


};

main()
{
  clrscr();

  spisok a;
  float b;

  for(int i=0;i<5;i++){
    cin>>b;
    a.add(b);
  }

  a.sort();

  for(int k=0;k<5;k++){
   cout<<" "<<a.get();
  }


  getch();
  return 0;
}
Может кто знает в чём ошибка моя?..(
Спасибо.
FreeR
Freer вне форума
Старый 27.01.2009, 00:48   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Не проверял, но, думаю, проблема здесь:
Код:
if(current->value< fros->value)
      {
	int bufer=current->value;
	current->value=fros->value;
	fros->value=bufer;
      }
bufer типа int, а current->value - float

upd Проверил - проблема действительно в этом.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 27.01.2009 в 00:50.
Sazary вне форума
Старый 27.01.2009, 00:49   #3
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
По умолчанию

да.Точно.Я щас понял)) Жесть.
Тупо получилось)
Спасибо!

Я просто стока раз код переписыват что уже забыл про временную переменную.Вот тупанул=) Надеюсь модер сильно ругаться не будет)
FreeR

Последний раз редактировалось MaTBeu; 27.01.2009 в 02:59.
Freer вне форума
Старый 27.01.2009, 03:00   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Не, я не ругаюсь по таким случаям. Вопрос корректно поставлен, все оформлено по правилам. Так что все акей.
Тема закрыта. (Так как ответ уже получен, во избежание флуда)
MaTBeu вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать массив вещественных чисел nec117 Общие вопросы C/C++ 4 06.10.2008 20:16
Как прочитать 10 байтовый тип вещественных чисел The REAL Общие вопросы .NET 3 05.09.2008 10:46
Сортировка массива чисел Roberto Помощь студентам 1 02.04.2008 23:19
Удалить столбец двумерного массива вещественных чисел dolbi Помощь студентам 2 29.03.2008 06:30