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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 450
#1

Вывод массива - C++

25.12.2013, 22:38. Просмотров 243. Ответов 1
Метки нет (Все метки)

Привет всем, ребят, тут такое дело, я сделал прогу которая сортирует массив, прога содержит шаблон,...суть в том что при сортировке чисел типа double выдает ерунду при таких числах как например, 2.3 4.5 5.6. и т д.....и так же среднее арифметич выдает не то и так далее там видно будет......благодарен заранее
#include <iostream>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;

template<typename T>
class Ve
{
public:

T *v;
int n;
Ve();
Ve(int);
void vvod(); //заполнение двухмерного массива
void vivod(); // вывод двухмерного массива
void InsertionSort();//сортировка вставками
~Ve(); // удаление двумерного динамического массива
};
//-----------------------------------
template<typename T>
Ve<T>::Ve()
{
n=0;
v=NULL;
}
//----------------------------------
template<typename T>
Ve<T>::Ve(int xx)
{
n=xx;
v = new T [n];
}
//-----------------------------------
template<typename T>
void Ve<T>::vvod()
{
cout<<"заполните массив: "<<endl;
for(int i=0; i<n; i++)
cin>>v[i];
}
//------------------------------------
template<typename T>
void Ve<T>::vivod()
{
for(int i=0; i<n; i++)

cout<<v[i];
cout<<endl;
cout<<"минимальный элемент массива"<<v[0]<<endl;
cout<<"максимальный элемент массива"<<v[n-1]<<endl;
int x=0,a=0,y=0;
while(y<n)
{
x=x+v[a];
a++;
y++;
}
int sr,shod=0;
sr=x/n;
cout<<"среднее арифмет"<<sr<<endl;
for(int i=0; i<n; i++)
{
if (v[i]==sr) {shod=shod+1;};
}
cout<<"совпадение"<<shod<<endl;
}
//-------------------------------------
template<typename T>
void Ve<T>::InsertionSort()//сортировка вставками
{
int i, j, key=0, temp=0;
for (i=0; i<n-1; i++)
{
key=i+1;
temp=v[key];
for (j=i+1; j>0; j--)
{
if (temp<v[j-1])
{
v[j]=v[j-1];
key=j-1;
}
}
v[key]=temp;
}

}
//---------------------------------------
template<typename T>
Ve<T>::~Ve()
{
delete[] v;
}
//==========================================
void main()
{
setlocale (LC_ALL, "Russian");
// все процессы происходящие в базовом классе
int xx;
cout<<"введите размер массива для сортировки:"<<endl;
cin>>xx;
Ve<float> obj(xx);

obj.vvod();

obj.InsertionSort();
cout<<"отсортированный массив методом вставок:"<<endl;
obj.vivod();


getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 22:38     Вывод массива
Посмотрите здесь:

Вывод массива. - C++
Программа работает, но код... запутаться можно. Есть ли способы попроще? Заранее спасибо. #include &lt;iostream&gt; #include &lt;ctime&gt; ...

Вывод массива - C++
Не могу вывести массив после нахождения суммы. Прошу помочь или подкиньте-ка идею) void c(int **m, int s, int r) { for (int...

Вывод Массива - C++
Имеется код: #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; using namespace std; int zapolnenie(int a, int b, int e,...

Вывод массива - C++
Здрасти, имеется заголовочный файл &quot;matrix.h&quot;, в котором создается двумерный массив: int** CreateMatrix(int count_row,int count_col){ ...

вывод массива - C++
че тут не так? пишит что проблемма в строке cout &lt;&lt; arr.print &lt;&lt; endl; #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string&gt; ...

Вывод массива! - C++
#include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; using namespace std; class...

Вывод массива - C++
Помогите пожалуйста написать программу которая выводит массив на ввиде k столбцов и оканчивается на n числе, заранее спасибо

Вывод массива - C++
Здрасти, помогите вывести массив: #include &lt;iostream&gt; #include &lt;conio.h&gt; int* CreateDoubleDynArray(unsigned int count_row,...

вывод массива в сортировке - C++
В функции сортировки при каждом выполнении цикла надо выводить текущий массив, после сортировки. void sort2(int a,int n) { int...

Вывод массива из файла - C++
файл init.dat находитсья в корне, в файле матрица 4х5. Надо вывести на экран, подскажите


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mrtelohranitel
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 27
Завершенные тесты: 1
25.12.2013, 23:31     Вывод массива #2
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
#include <iostream>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
 
template<typename T>
class Ve
{
public:
 
T *v;
int n;
Ve();
Ve(int);
void vvod(); //заполнение двухмерного массива
void vivod(); // вывод двухмерного массива
//void InsertionSort();//сортировка вставками
void ISort();//сортировка вставками
~Ve(); // удаление двумерного динамического массива
};
//-----------------------------------
template<typename T>
Ve<T>::Ve()
{
n=0;
v=NULL;
}
//----------------------------------
template<typename T>
Ve<T>::Ve(int xx)
{
n=xx;
v = new T [n];
}
//-----------------------------------
template<typename T>
void Ve<T>::vvod()
{
cout<<"заполните массив: "<<endl;
for(int i=0; i<n; i++)
cin>>v[i];
}
//------------------------------------
template<typename T>
void Ve<T>::vivod()
{
for(int i=0; i<n; i++)
 
cout<<v[i]<<" ";
cout<<endl;
cout<<"минимальный элемент массива"<<v[0]<<endl;
cout<<"максимальный элемент массива"<<v[n-1]<<endl;
float x=0.0;int a=0,y=0;
while(y!=n)
{
x=x+v[a];
a++;
y++;
}
float sr;int shod=0;
sr=x/n;
cout<<"среднее арифмет"<<sr<<endl;
for(int i=0; i<n; i++)
{
if (v[i]==sr) {shod=shod+1;};
}
cout<<"совпадение"<<shod<<endl;
}
//-------------------------------------
/*template<typename T>
void Ve<T>::InsertionSort()//сортировка вставками
{
int i, j; int key=0, temp=0;
for (i=0; i<n-1; i++)
{
key=i+1;
temp=v[key];
for (j=i+1; j>0; j--)
{
if (temp<v[j-1])
{
v[j]=v[j-1];
key=j-1;
}
}
v[key]=temp;
}
 
}*/
template<typename T>
void Ve<T>::ISort()
{
 // Переменные циклов
 int i, j; 
 // Временная переменная для хранения текущего элемента
 float temp; 
 
 // Находим позицию очередного элемента и вставляем его туда
 for(i = 1; i < n; i++)
 {
 // Запоминаем текущий элемент
 temp = v[i];
 j = i - 1;
 // Просматриваем элементы слева от текущего
 while(j >= 0 && v[j] > temp)
 {
 // Если находим элемент меньше текущего, то сдвигаем его вправо
 v[j + 1] = v[j];
 j--;
 }
 // Помещаем текущий элемент в освободившуюся позицию
 v[j + 1] = temp;
 }
}
//---------------------------------------
template<typename T>
Ve<T>::~Ve()
{
delete[] v;
}
//==========================================
void main()
{
setlocale (LC_ALL, "Russian");
// все процессы происходящие в базовом классе
int xx;
cout<<"введите размер массива для сортировки:"<<endl;
cin>>xx;
Ve<float> obj(xx);
 
obj.vvod();
 
obj.vivod();
 
//obj.InsertionSort();
obj.ISort();
cout<<"отсортированный массив методом вставок:"<<endl;
obj.vivod();
 
 
getch();
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru