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

проще и короче - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работы в векторами. http://www.cyberforum.ru/cpp-beginners/thread514849.html
Читая в книге тему про вектора наткнулся на такой предложение: "Также существует функция push_front() для занесения элементов в начале вектора, однако векторами она не поддерживается" Поэтому при выполнении задания, которое требовало выведение строк в обратном порядке, я сделал так: #include <string> #include <iostream> #include <fstream> #include <vector> using namespace std; int...
C++ printf и cout У меня возник вопрос, что луче еспользовать в C++, printf/scanf или cout/cin ? Что работает быстрее? Есть такой фрагмент кода int i; for (i = -10; i <= 10; i ++) { printf ("%+4.2i |%6.3f\n", i, 1./(i*i + .5)); http://www.cyberforum.ru/cpp-beginners/thread514831.html
удаленный рабочий стол C++
народ,подскажите кто знает! хочу написать прогу на подобии удаленный рабочий стол. чтобы на своем мониторе видеть монитор компа к которому подключился с возможностью выполнять необходимые действия.но не знаю с чего начать,подскажите куда копать,что почитать? Добавлено через 23 часа 2 минуты никто не сталкивался с такой задачей?
Написать программу, выясняющую количество четных цифр во введенном пользователем числе. C++
Написать программу, выясняющую количество четных цифр во введенном пользователем числе.
C++ Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа http://www.cyberforum.ru/cpp-beginners/thread514805.html
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не выводит(( Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа. Если таких чисел нет, то вывести слово «нет». Пример. N = 32. Числа: 6, 16, 23. Вот сама...
C++ Реализация стека на массиве и динамическом распределении памяти всем привет, дано такое задание: Используя стек, решить следующую задачу. Напечатать каждое слово текстового файла Т в обратном порядке. Стек реализовать в двух вариантах: на массиве и с использованием динамического распределения памяти. я пока пытаюсь сделать на массиве #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <iostream> #include <string.h> подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.03.2012, 19:53     проще и короче
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream>
#include <algorithm>
#include <numeric>
#include <iterator>
#include <functional>
#include <iomanip>
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
/*
Динамическое выделение памяти, каждый пункт ф-ция, данные- через пар-ры, глобал.переменные - не допускаются.
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) количество отриц. элементов массива;
2) сумму модулей элементов массива, расположенных после минимального по
   модулю элемента.
3) Заменить все отриц. элементы массива их квадратами.
4) Упорядочить элементы массива по возрастанию.
*/
 
#define n 10 // длина массива
 
// Заполнение массива случайными значениями
void MakeArray(double *X)
{
    for (int i = 0; i - n; )
        X[i++] = (double) ( rand() - rand() ) / 0xfc;
}
 
// Подсчёт отрицательных элементов массива
unsigned GetNegativeCount(double *X)
{
        return std::count_if( X, X + n, std::bind2nd( std::less< double > (), 0 ) );
}
 
// Вычисление суммы модулей элементов массива,
// расположенных после минимального по модулю элемента.
double GetSum(double *X, unsigned *MinIndex)
{
        *MinIndex = std::distance(X, std::min_element(X, X + n, [] (int a, int b) { return fabs(a) < fabs(b); } ) );
        return std::accumulate( X + *MinIndex + 1, X + n, 0, [] ( int total, int z ) { return total + fabs(z); } );
}
 
// Замена все отриц. элементы массива их квадратами.
void NegativeToSquare(double *X)
{
  std::transform(X, X + n, X, [] (double a) { return a < 0 ? a * a : a;  } );
}
 
// Сортировка по возрастанию
void Sort(double *X)
{
        std::sort(X, X + n);
}
 
// Вывод массива на консоль
void OutArray(double *X)
{
  std::cout << std::fixed << std::setprecision(2);
  std::copy( X, X + n, std::ostream_iterator< double > (std::cout, " ") );
}
 
int main(int argc, char *argv[])
{
  double X[n]; // массив из n элементов
  double Sum;  // сумма модулей элементов массива,
               // расположенных после минимального по модулю элемента.
  unsigned MinIndex; // номер элемента, минимального по модулю
 
  MakeArray(X);
 
  printf("Source array:\n");
  OutArray(X);
 
  printf("\nNegative items: %d\n", GetNegativeCount(X));
 
 
  Sum = GetSum(X, &MinIndex);
 
  printf("\nSum of absolute values before absolute minimum (%0.2f): %0.2f\n", X[MinIndex], Sum);
  printf("\nAfter changes negative items to it's squares:\n");
        
  NegativeToSquare(X);
  OutArray(X);
 
  printf("\nArray after sorting:\n");
  Sort(X);
  OutArray(X);
 
  printf("\n\n");
  system("PAUSE");
  return EXIT_SUCCESS;
  
}
Там, кстати, во втором пункте ошибка - находится сумма элементов до минимального, а нужно после минимального.
 
Текущее время: 08:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru