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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2014, 22:24   #1
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию метод пузырька не могу справиться с программой

Код:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <locale.h>
#include <float.h>

#define A 5

int main()
{
    setlocale(LC_CTYPE,"Russian");
   int      i   ;
   int      min = 0;

   float    M[A];
   float    fMin = FLT_MAX;
   float    fSum = 0.0f;

   bool     RunSum = false;
   bool     Summed = false;
   bool     flag=false;

   int    temp;
   int    j;


   printf("Введите %d элементов массива.(из д/з хотябы два элемента должно быть <0) \n",A);

   for (i = 0; i < A; ++i)
   {
      printf("[%d]: ",i);
      scanf("%f",&M[i]);//заполнение массива

      if (fMin > M[i])
      {
         fMin = M[i];  // естественный Минимум
       min = i;
      }

      // Остановка Sum
      if (Summed && (M[i] < 0) )
      {
         RunSum = false;  // Запуск
      }

      if (RunSum)
      {
         fSum += M[i];
      }

      // Начало Sum на следующем шаге
      if (!Summed && (M[i] < 0))
      {
         Summed = true;
         RunSum = true;
      }

   }

   printf("Минимальное значение: %f В ячейке [%d]\n",fMin,min);
   printf("Сумма равна: Sum= %f\n",fSum);


   for (i = 0; i < A - 1; i++)
{
    for (j = 0; j < A - 1; j++)
        if (M[j] < M[j + 1])
        {
            temp = M[j + 1];
            M[j + 1] = M[j];
            M[j] = temp;
        }
}
for (i = 0; i<A; i++)
{
    printf("%i ", M[i]);
}


   return 0;
}
последняя часть не хочет работать т.е не выполняет задание расположить элементы массива от меньшего к большему
Код:
   for (i = 0; i < A - 1; i++)
{
    for (j = 0; j < A - 1; j++)
        if (M[j] < M[j + 1])
        {
            temp = M[j + 1];
            M[j + 1] = M[j];
            M[j] = temp;
        }
}
for (i = 0; i<A; i++)
{
    printf("%i ", M[i]);
}
mital25 вне форума Ответить с цитированием
Старый 06.11.2014, 22:30   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
   for (i = 0; i < A - 1; i++)
{
    for (j = 0; j < A - 1; j++)
        if (M[j] > M[j + 1])
        {
            temp = M[j + 1];
            M[j + 1] = M[j];
            M[j] = temp;
        }
}
for (i = 0; i<A; i++)
{
    printf("%f ", M[i]);
}

Последний раз редактировалось Poma][a; 06.11.2014 в 22:38.
Poma][a вне форума Ответить с цитированием
Старый 06.11.2014, 22:37   #3
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию

доброй ночи спасибо за уделенное время но к сожалению все равно не правильно устанавливаются элементы
mital25 вне форума Ответить с цитированием
Старый 06.11.2014, 22:39   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Добрый.
Букофкой одной ошибся.. Попробуй исправленный выше вариант еще раз..
Poma][a вне форума Ответить с цитированием
Старый 06.11.2014, 22:42   #5
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию

прошу прощения программа заработала но к сожалению не так как надо_))) она начала располагать от большего к меньшему а необходимо совсем наоборот я уже практически неделю бьюсь над результатом и ни к чему не приводит а сдавать ее уже завтра
mital25 вне форума Ответить с цитированием
Старый 06.11.2014, 23:26   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

У меня работает.. тыц
Poma][a вне форума Ответить с цитированием
Старый 06.11.2014, 23:34   #7
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию

огромное вам спасибо вы очень помогли)нашел ошибку и заработало)
mital25 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу справиться с зависанием Maria Aleksandrovn Общие вопросы Delphi 3 27.08.2012 21:58
Не могу справиться с заданием! жук13 Помощь студентам 7 28.05.2012 14:01
Не могу справиться с задачей. Simpo Фриланс 5 24.05.2012 09:41
Не могу справиться calintz Паскаль, Turbo Pascal, PascalABC.NET 4 07.06.2011 19:31
Функции. Си. Не могу справиться Dpo6oDyH Общие вопросы C/C++ 4 18.05.2011 16:10