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

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

Восстановить пароль Регистрация
 
Blackhole
 Аватар для Blackhole
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 19
03.05.2014, 19:45     Ввод-вывод элементов одномерного массива #1
Помогите написать программу для ввода элементов одномерного массива, вывода этого массива на экран. Вычислить среднее арифметическое значение элементов между максимальным и минимальным элементами.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 19:45     Ввод-вывод элементов одномерного массива
Посмотрите здесь:

С помощью рекурсивной функции осуществить вывод на экран элементов одномерного массива C++
Вывод на экран значений элементов типа int из одномерного массива любой длины C++
Три функции (ввод значений элементов массива, вывод, сравнение двух массивов) C++
Рекурсия (вычисление суммы, вывод элементов одномерного массива в обратном порядке) C++
C++ Ввод\вывод одномерного массива (printf)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
03.05.2014, 19:51     Ввод-вывод элементов одномерного массива #2
Blackhole, с чем возникли трудности?
Melg
416 / 152 / 62
Регистрация: 23.09.2013
Сообщений: 306
03.05.2014, 20:33     Ввод-вывод элементов одномерного массива #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Сейчас помогу, немного терпения.

Добавлено через 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;
}
Писал на скорую руку, не судите строго.
Supernatural
03.05.2014, 20:37     Ввод-вывод элементов одномерного массива
  #4

Не по теме:

Melg, это шутка или нет? Задачу же можно решить попроще)))

Yandex
Объявления
03.05.2014, 20:37     Ввод-вывод элементов одномерного массива
Ответ Создать тему
Опции темы

Текущее время: 02:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru