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

Два указателя. Сложно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как выйти из циклов http://www.cyberforum.ru/cpp-beginners/thread859628.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> #include <Windows.h> #include <iostream> void main(void) { SetConsoleCP(1251);
C++ Почему так? Я вот уже довольно много времени читаю книги и разные коды по программированию, но все так и не понял. Почему хорошие программисты используют запись std:: а не просто в начале написать using namespace std; ?? В чем принципиальное различие между этими двумя записями и какую лучше применять? http://www.cyberforum.ru/cpp-beginners/thread859622.html
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой C++
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой. Типо 1/3 = 0,333333333333333333333333333334 P.S. Еще учитель просить использовать массив. Зачем? И как?
C++ поиск подстроки в строке
Всем доброго времени суток! Дано: две строки типа string, к примеру str1 = "HeLLo" и str2 = "hell" Вопрос: как найти из str1 подстроку str2 без учёта регистра? заранее спасибо
C++ Поиск и замена слов в файле txt http://www.cyberforum.ru/cpp-beginners/thread859590.html
Как заменить и найти слова в файле txt на С++. То есть есть файл вот такой структуры AAA БББ BBB 111 222 ыыы
C++ Рекурсивная функция Походу что-то с массивами не то, когда ввожу слишком большое число (15+), то выбивает ошибку с кучами\стеками, которую я не понимаю. using namespace std; void rekursija(long long factorials, int ArSize); int main() { cout << "Pls enter the number: " << endl; int ArSize; cin >> ArSize; long long * factorials = new long long; подробнее

Показать сообщение отдельно
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,343
09.05.2013, 18:24     Два указателя. Сложно
Ternsip, не сильно проверял, но вроде работает:
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
bool comp( const pair<int, int> &a, const pair<int, int> &b )
{
  if (a.second < b.second)
    return true;
  return false;
}
 
void main( void )
{
  vector<int> arr(6);
 
  arr[0] = -10, arr[1] = -2, arr[2] = 3, arr[3] = 3, arr[4] = 0, arr[5] = -4;
  
  for (int i = 0; i < 6; ++i)
    cout << arr[i] << ' ';
  cout << endl;
  int sum = 0;
  vector<pair<int, int>> pref(6 + 1);
  pref[0].first = pref[0].second = 0;
  for (int i = 1; i < 6 + 1; ++i)
  {
    sum += arr[i - 1];
    pref[i].first = i + 1;
    pref[i].second = sum;
  }
 
  std::sort(pref.begin(), pref.end(), comp);
  vector<int> maxInd(6 + 1);
 
  for(int i = 0; i < 6 + 1; ++i)
  {
    maxInd[i] = pref[i].first;
    for (int j = i + 1; j < 6 + 1; ++j)
    {
      if (pref[j].second >= pref[i].second && pref[j].first > maxInd[i])
        maxInd[i] = pref[j].first;
    }
  }
 
  int max = 0;
  for (int i = 1; i < 6 + 1; ++i)
  {
    if (maxInd[i] - pref[i].first > maxInd[max] - pref[max].first)
      max = i;
  }
 
  cout << pref[max].first << ' ' <<  maxInd[max] - pref[max].first << endl;
  system("pause");
}
В выводе нумерация элементов массива начинается с единицы.
 
Текущее время: 23:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru