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

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

Восстановить пароль Регистрация
 
Левиафам
 Аватар для Левиафам
31 / 26 / 5
Регистрация: 31.05.2012
Сообщений: 394
25.12.2013, 22:38     Вывод массива #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++ Вывод массива
C++ Вывод массива
Вывод массива C++
вывод массива C++
C++ Вывод массива.
Вывод определенного элемента массива из массива символов C++
Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного C++
C++ Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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();
}
Yandex
Объявления
25.12.2013, 23:31     Вывод массива
Ответ Создать тему
Опции темы

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