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

Ввод-вывод элементов одномерного массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу для вычисления ряда http://www.cyberforum.ru/cpp-beginners/thread1165181.html
Здравствуйте, помогите написать программу для вычисления суммы элементов ряда y1 с заданной точностью e(e>0) и сумму N элементов ряда y2; Заранее спасибо.
C++ Наследование контейнера А можно ли создать класс, который будет наследовать все функции от vector'a, и собрать его в dll, чтобы подключить на C#? http://www.cyberforum.ru/cpp-beginners/thread1165174.html
Игра в карты C++
Делаю игру, симулирующую игру в дурака в консоли. Пока вместо карт поставил просто числа. Большее число бьет меньшее)). Остановился на этом этапе. Код компилируется, запускается, но заканчивается ошибкой. Где ошибка? Или подскажите как пользоваться отладчиком CodeBlocks #include <iostream> #include <conio.h> #include <vector> #include <ctime> #include <cstdlib> using namespace std; ...
Запуск .exe с параметрами? C++
как реализовать на С++ следующее: запускать приложение с параметрами и выполнять при получении нужного параметра нужную функцию?
C++ Какая функция производит непосредственно копирование значение тега? http://www.cyberforum.ru/cpp-beginners/thread1165155.html
Доброго времени суток. Впервые приходится работать с библиотекой TinyXML и, собственно, возник вопрос: какая функция производит непосредственно копирование значение тега? Например, float saved = xml_Field-> ;//...и к какой функции обратиться? Нужно сохранить в saved то, что содержится в xml_Field Документацию читал, из нее понял все, что нужно, кроме этого. Вот весь кусок кода: float...
C++ Нахождение заданного числа в последовательно (или близкого к нему) путём сложения чисел в заданной последовательности Доброго времени суток. Нужна помощь в решение следующей задачи, или порекомендуйте алгоритм, который можно использовать для реализации данной программы. Есть следующие входные данные: 1. Последовательность чисел, максимальная длина такой последовательности - 100 чисел. 2. И число, которое является ограничителем, назовем его MAX. Суть задачи такова, сложить числа из данной... подробнее

Показать сообщение отдельно
Melg
416 / 152 / 62
Регистрация: 23.09.2013
Сообщений: 306
03.05.2014, 20:33     Ввод-вывод элементов одномерного массива
Сейчас помогу, немного терпения.

Добавлено через 13 минут
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include <iostream>
#include <algorithm>
#include <assert.h>
 
 
int GetIntValueFromUser() {
  int value = 0;
  std::cin >> value;
  return value;
}
 
int GetSizeOfArrayFromUser() {
  std::cout << "Please input size of array." << std::endl;
  int size_of_array = GetIntValueFromUser();
  std::cout << "Size of array is: " << size_of_array << std::endl;
  return size_of_array;
}
 
bool IsSizeOfArrayCorrect(int size_of_array) {
  return size_of_array > 0;
}
 
void ShowIncorrectSizeOfArrayMessage() {
  std::cout << "You input incorrect size of array" << std::endl;
}
 
void ShowTryAgainMessage() {
  std::cout << "Try again" << std::endl;
}
 
int *AllocateArray(int size_of_array) {
  int *array = new int[size_of_array];
  return array;
}
 
void Deallocatearray(int *array) {
  if (array) {
      delete[] array;
    }
}
 
void ShowFillArrayMessage(int size_of_array) {
  std::cout << "Please input " << size_of_array << " values to fill array"
            << std::endl;
}
 
void ShowCurrentIteration(int iteration) {
  std::cout << "Filling iteration : " << iteration << std::endl;
}
 
void ShowArrayFillCongratulations() {
  std::cout << "Array filled successfully!" << std::endl;
}
 
void FillArrayFromUserInput(int size_of_array, int *&array) {
  ShowFillArrayMessage(size_of_array);
  for (int i = 0; i < size_of_array; ++i) {
      ShowCurrentIteration(i);
      array[i] = GetIntValueFromUser();
    }
}
 
void GetArrayFromUser(int &size_of_array, int *&array_from_user) {
  bool got_correct_array = false;
  while(!got_correct_array) {
      size_of_array = GetSizeOfArrayFromUser();
      if (IsSizeOfArrayCorrect(size_of_array)) {
          array_from_user = AllocateArray(size_of_array);
          FillArrayFromUserInput(size_of_array, array_from_user);
          got_correct_array = true;
        } else {
          ShowIncorrectSizeOfArrayMessage();
          ShowTryAgainMessage();
        }
    }
}
 
void ShowNoPointerErrorMessage() {
  std::cout << "Error: no pointer given!" << std::endl;
}
 
bool IsArrayCorrect(const int *array) {
  return array != NULL;
}
 
 
void ShowAllFieldOfCorrectArray(int size_of_array, const int *array) {
  for(int i = 0; i < size_of_array; ++i) {
      std::cout << "array[" << i << "] = " << array[i] << std::endl;
    }
}
 
void ShowArray(int size_of_array, const int *array) {
  if (!IsArrayCorrect(array)) {
      ShowNoPointerErrorMessage();
    } else {
      ShowAllFieldOfCorrectArray(size_of_array, array);
    }
}
 
int GetMaxiamalFromArray(int size_of_array, const int *array) {
  assert(size_of_array > 0);
  assert(array);
  int max = array[0];
  for(int i = 1; i < size_of_array; ++i) {
      max = std::max(max, array[i]);
    }
  return max;
}
 
int GetMinimalFromArray(int size_of_array, const int *array) {
  assert(size_of_array > 0);
  assert(array);
  int min = array[0];
  for(int i = 1; i < size_of_array; ++i) {
      min = std::min(min, array[i]);
    }
  return min;
}
 
double GetAverage(int first, int second) {
  double average = static_cast<double>((first + second)) / 2;
  return average;
}
 
bool IsSizeCorrect(int size) {
  return size > 0;
}
 
void ShowIncorrectArrayAverageError() {
  std::cout << "Error: Incorrect array given, can't find average" << std::endl;
}
 
double FindAverageOfMinimalAndMaximalElements(int size_of_array,
                                           const int *array) {
  double average = GetAverage(GetMinimalFromArray(size_of_array, array),
                           GetMaxiamalFromArray(size_of_array, array));
  return average;
}
 
void ShowAverage(double average) {
  std::cout << "Average of minimal and maximal elements is : " << average
               << std::endl;
}
 
void ShowAverageFromArray(int size_of_array, const int *array) {
  if (IsArrayCorrect(array) && IsSizeCorrect(size_of_array)) {
      double average = FindAverageOfMinimalAndMaximalElements(size_of_array,
                                                              array);
      ShowAverage(average);
    } else {
      ShowIncorrectArrayAverageError();
    }
}
 
int main(int argc, char **argv) {
  (void)argc;
  (void)argv;
  int size_of_array = 0;
  int *array_from_user = NULL;
  GetArrayFromUser(size_of_array, array_from_user);
  ShowArray(size_of_array, array_from_user);
  ShowAverageFromArray(size_of_array, array_from_user);
  Deallocatearray(array_from_user);
  return 0;
}
Писал на скорую руку, не судите строго.
 
Текущее время: 12:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru