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

Вычислить максимальный по модулю элемент массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить b=2*tg(x)+ 4/3 *ctg(y) http://www.cyberforum.ru/cpp-beginners/thread379277.html
Разработать программу для вычисления математического выражения. b=2*tg(x)+ 4/3 *ctg(y)
C++ как можно разбить на группы кучу переменных? пишу прогу которая высчитывает разную статистику и в ней переменных штук 30.. например int iOrdersLoss int iOrdersProfit int iPeriodsLoss int iPeriodsProfit double dExpectedPayoff http://www.cyberforum.ru/cpp-beginners/thread379276.html
Помогите сделать программку:С введенного текста вывести именно короткое слово. C++
С введенного текста вывести самое короткое слово.
C++ Поиск последнего файла
Доброго времени суток. У меня есть задача "получить список файлов (по расширению) в каталоге, их имена, выбрать из них последний скопированный в каталог, получить его имя в переменную для дальнейшего использования". Реализую так: int m; char p=""; int main(int argc, char* argv) { struct ffblk ffblk; int done,a2,a1,a,a3,a4,i,d; AnsiString fn,res,ds;
C++ Задачка на строки http://www.cyberforum.ru/cpp-beginners/thread379244.html
Помогите кто может, пожалуйста. Задана строка S. Найдите количество ее различных подстрок, включая пустую. Буквы подстроки могут идти не подряд в самой строке. Ввод В первой строке записана строка S (длина от 1 до 25). Вывод Выведите ответ. Пример:
C++ Срочно Народ помогите! первая задача///Массив заполнять случайными числами от -5 до 5. В одномерном массиве состоящем из 10 целых элементов вычислить: а)номер максимального элемента массива б)произведение элементов массива.расположеных между первым и вторым нулевыми элементами. преобразовать массив так.чтобы в первой его половине распологались элементы.стоявшие в нечетных позициях.а во второй половине... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
10.11.2011, 02:06     Вычислить максимальный по модулю элемент массива
Так легче?
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
void fillRandom(int *begin, int *end, int min, int max) {
  while (begin != end)
    *begin++ = rand() % (max - min + 1) + min;
}
 
void printArray(int *begin, int *end) {
  for (; begin != end; ++begin)
    std::cout << (*begin) << ((begin + 1 != end)? ", " : "");
  std::cout << std::endl;
}
 
int *getMaxAbs(int *begin, int *end) {
  int *max = begin;
  for (; begin != end; ++begin)
    if (abs(*begin) > abs(*max))
      max = begin;
  return max;
}
 
int *getFirstPositive(int *begin, int *end) {
  while (begin != end && *begin <= 0)
    ++begin;
  return begin;
}
 
int getSum(int *begin, int *end) {
  int result = 0;
  while (begin != end)
    result += *begin++;
  return result;
}
 
void moveZeroesToEnd(int *begin, int *end) {
  while (true) {
    while (begin != end && *begin != 0) ++begin;
    if (begin == end--) break;
    while (begin != end && *end == 0) --end;
    if (begin == end) break;
    std::swap(*begin++, *end);
  }
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  size_t arraySize = 10;
  int *array = new int[arraySize];
  fillRandom(array, array + arraySize, -5, 5);
  printArray(array, array + arraySize);
  
  int *maximum = getMaxAbs(array, array + arraySize);
  std::cout << "First max by abs: " << *maximum << " at index " <<
    maximum - array << "." << std::endl;
 
  int *firstPositive = getFirstPositive(array, array + arraySize);
  if (firstPositive != array + arraySize) {
    int *secondPositive = getFirstPositive(firstPositive + 1, array + arraySize);
    if (secondPositive != array + arraySize) {
      std::cout << "Fist positive: " << *firstPositive << std::endl <<
        "Second positive: " << *secondPositive << std::endl <<
        "Sum between " << getSum(firstPositive + 1, secondPositive) <<
        std::endl;
    } else {
      std::cout << "No second positive value in array." << std::endl;
    }
  } else {
    std::cout << "No positive values in array." << std::endl;
  }
 
  std::cout << "Zeroes last:" << std::endl;
  moveZeroesToEnd(array, array + arraySize);
  printArray(array, array + arraySize);
  return 0;
}
 
Текущее время: 11:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru