Форум программистов, компьютерный форум CyberForum.ru

Массив. Заменить все повторяющиеся значения одним в заданном интервале - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передать из массива char в переменную long? http://www.cyberforum.ru/cpp-beginners/thread800699.html
Переменную x.number = 0xff804020; я передал в массив x.bytes по байтно #include "stdafx.h" #include "conio.h" union X { unsigned long number; unsigned char bytes; }; int main()
C++ Передать из массива char в переменную long? Люди добрые help!!! Не могу сообразить как обратно вернуть значение переменной x.number = 0xff804020; #include "stdafx.h" #include "conio.h" union X { unsigned long number; unsigned char bytes; }; http://www.cyberforum.ru/cpp-beginners/thread800692.html
Создать класс и вычислить длину ломаной линии C++
Создать класс linXY - ломаная линия, принадлежащая первому квадранту плоскости. Функция-член класса: вычисление длины ломаной линии. Определить конструктор для инициализации экземпляра класса с помощью имеющегося массива двумерных точек XY известной длины. Продемонстрировать работоспособность копирующего конструктора и оператора присваивания. Вычислить длину ломаной линии с 10 точками излома ...
C++ Как называется программа для работы в сфере с++?
Здраствуйте ув пользователи Сайбер форума. Мне нужна ваша помощь... В прочем для вас это не трудно подсказать))) Я решил перейти на с++, дайте ссылку на прогу пожалуйста. И ещё, пригодится ли мне знание Delphi в c++? Спасибо!
C++ Структуры в C++ http://www.cyberforum.ru/cpp-beginners/thread800675.html
Подскажите пожалуйста: зачем в объявлении структуры между } и ; указываются идентификаторы? Как их можно использовать? Для чего zap,zapt в данном коде? Пример: struct Student { char Familya; float Reyting; } zap,zapt;
C++ Разработка класса "эллипс" Всем привет!Нужна Ваша помощь!я в графике Си не шару! Разработка класс "эллипс", создать три объекта, изображающие: 1. расширение и сжатие эллипса по горизонтали до размеров окружности при неподвижном центре эллипса 2. скольжение эллипса постоянных размеров вдоль горизонтальной линии 3. "переползание" эллипса по экрану путём одновременного расширения (сжатия) и скольжения! подробнее

Показать сообщение отдельно
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
04.03.2013, 21:35     Массив. Заменить все повторяющиеся значения одним в заданном интервале
Доброго всем времени суток.Помогите пожалуйста начинающему.Пытаюсь решать задачи на массивы,но чего то не понимаю.Нужно из полученного массива заменить все повторяющиеся значения одним в заданном интервале.При заполнении массива с клавиатуры у меня все получилось,а в сформированном почему то не получается.Пожалуйста подскажите своих мозгов не хватает,а спросить не у кого.Вот мой, может быть и убогий код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <iomanip>
#include <math.h>
 
using namespace std;
 
int main()
{
 
   const int size = 30;//объявляем статический массив на 30 элементов
   //и инициализируем или заполняем и сортируем
   double  A[size] = {0.25,0.28,0.3,0.315,0.335,0.355,0.38,0.4,0.45,0.5,0.53,0.56,0.6,0.63,
                 0.67,0.71,0.75,0.8,0.85,0.9,0.95,1.0,1.06,1.12,1.18,1.25,1.32,1.40,1.45,1.5};
 
 
    int a,b,i,j,k,l,t;
    double  D,G,S,pi;
    bool q;
    pi = 3.14;
    q = 1;
    S = 3;// задается. Задано произвольно
  D = 1;// задается. Задано произвольно
 b = 0;
 G = 0.002;// задается. Задано произвольно
double  *B = new double  [size];//объявляем динамический массив
 
//вычисляем интервал и переписываем в новый массив B[b]
    for ( i = 0; i < size; i++)
    for ( i = 0; i < size; i++)
          {
        if(A[i] >= D*0.85 && A[i]<=D*1.25)
        B[b++] =((A[i]/2)*(A[i]/2))*pi;//заполняем массив по формуле (можно и по другой)
          }
//перебираем все элементы массива В[b] 4 циклами
    for ( i = 0; i < b; i++)
      for ( j = i; j < b; j ++)
        for ( k = i; k < b; k ++)
          for ( l = i; l < b; l ++)
            for ( a = i;  a <= b*4;a ++ )// проходим 4 раза по каждому элементу массива В[b]
    if (i+j+k+l==a)                      //суммируем
    {
     double  *AB = new double  [size];//временный массив будет хранить разницу
 
     AB[a] = (B[j] + B[i]+B[k]+B[l]) - S;//вычисляем разницу
    if ((AB[a] >= -G)&&(AB[a] <=G)) //интервал
      {
    /////////////
         for (t = i; t < b; t++)//проверяем на совподения
         for (t = i; t < b; t++)
        {
            AB[t++] = AB[a];
//если найдено совподения, то меняем флаг переменной q
          if(AB[t] == AB[a])
          q = 0;
         }
 
//если совподения не было найдено, то печатаем
  if(q == 1)
     //cout << AB[t] << endl;//контрольный вывод
     cout << setw(8)<<setprecision(3) << 2*(sqrt ((B[i])/pi))<< setw(15) << 2*(sqrt ((B[j])/pi))
      << setw(15) << 2*(sqrt ((B[k])/pi))<< setw(15) << 2*(sqrt ((B[l])/pi))
      << setw(15)<<setprecision(4)  << AB[t]<< endl;
        }
//в случае число не из интервала
         else
        {
             // t--;
              //t--;
        }
//меняем флаг перед входом в новую итерацию
        q =1;
    ///////////
 delete [] AB;
  }
 
 delete [] B;
 b = 0;
  return 0;
}
Выдает не то что нужно.Выходят комбинации не входящие в интервал,а те что входят не заменяются.Не могу сообразить что я не так делаю.Не работает код между ///////
Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru