Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [С++]Операция с массивом


Автор: avicii 2.12.2012, 18:16
Здравствуйте,помогите с написанием программ в С++ (использую CodeBlocks),я новичек хочу научиться,но лучше понимаю на примерах. 
Дано действительное число Х и массив А[n].В массиве найти два члена,среднее арифметическое которых ближе всего к Х

Автор: bsa 3.12.2012, 14:33

M
bsa
Для домашних заданий, курсовых и т.п. существует \"Центр Помощи\".




Тема перенесена. 

Автор: t_gran 3.12.2012, 18:36
Код

использую CodeBlocks

CodeBlocks умеет работать со множеством компиляторов, поэтому это ничего никому не говорит.

По поводу задачи, так на вскидку за 15 мин.:
Код

#include <iostream>
#include <cmath>

int main()
{
   const unsigned n = 10;

   float X = 5.45;

   int A[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

   unsigned first = 0;
   unsigned second = 1;

   float diff = std::abs(((A[first] + A[second]) / 2) - X);

   for (unsigned i = 0; i < n-1; ++i)
   {
      for (unsigned j = i+1; j < n; ++j)
      {
         float calc = std::abs(((A[i] + A[j]) / 2) - X);

         if (calc < diff)
         {
            diff = calc;
            first = i;
            second = j;
         }
      }
   }

   std::cout << "A[" << first << "] = " << A[first] << std::endl;
   std::cout << "A[" << second << "] = " << A[second] << std::endl;

   std::cout << "average = " << ((A[first] + A[second]) / 2) << std::endl;

   return 0;
}

P.S.: В коде грешок по поводу повторного выполнения кода. Пришлось пожертвовать, дабы не вводить функции.

Автор: avicii 21.12.2012, 13:37
Программа находит только 1 вариант пары чисел,как сделать перебор чтобы он искал несколько пар в массиве

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)