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

Одномерный массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задачка по С++ http://www.cyberforum.ru/cpp-beginners/thread26293.html
#include <iostream> using namespace std; int main() { double x,z,n; int y; cout<<"vvedite summu="; cin>>x; cout<<"vvedite % stavku="; cin>>z;
C++ Дан массив Z(15). Сформировать массив В следующим образом Дан массив Z(15). Сформировать массив В следующим образом. Если положительных элементов в массиве Z больше, чем отрицательных, то заменить в нем отрицательные элементы нулями. Иначе заменить положительные элементы максимальным элементом массива Z(15). Элементы массива Z задать самостоятельно. Начальный и сформированный массив выдать к печати. http://www.cyberforum.ru/cpp-beginners/thread26273.html
Обратная матрица C++
Narod pozhaluista pomogite s zadachkoi. Nado pokazat dlia matric 3x3 chto obratnaia matrica proizvedenia matric ravna proizvedeniu obratnih matric: (A*B*C)^-1=(A^-1)*(B^-1)*(C^-1)
Даты ввод вывод разность C++
Нужно написать программу, которая принимает от пользователя 2 даты-строки вида- ЦЦ. ЦЦ. ЦЦЦЦ, где Ц-это любая цифра из диапазона(0-9). Далее она вычисляет полное количество дней, прошедших между введенными датами и выводит на экран. ПОМОГИТЕ, ВЫ ЖЕ ОЧЕНЬ УМНЫЕ, я знаю!Вам это ничего не стоит, а я "погибаю".... Наташа.
C++ Сформировать вектор из диагональных элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread26213.html
"Для заданной матрицы(N на M) сформировать вектор из её диагональных элементов. Добавить элементы вектора к элементам K-ой строки." Размер матрицы вводится пользователем с клавиатуры, то есть m и n не константы. Вот что у меня получилось: #include <iostream.h> #include <conio.h> #include <stdlib.h> void main () {clrscr; randomize ();
C++ Задача на двоичные файлы! В первом двоичном файле находится информация о группе владельцев автомобилей:фамилия, имя, пол, год рождения, годовой доход, марка авто. Во втором двоичном файле информация об автомобилях: марка авто, его цена и тех.характеристики (мощность, наибольшая скорость, масса, тип кузова, рабочий обьем целиндров). Вывести фамилии владельцев автомобилей, имеющиx доход выше среднего, а автомобиль... подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
16.03.2009, 15:28     Одномерный массив
Вот для начала (остальные функции сами допишете )
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#include <algorithm>
#include <iostream>
#include <cassert>
#include <cstdlib>
#include <cmath>
using namespace std;
 
template<typename T>
class array
{
    typedef unsigned int uint;
public:
    array():used(0),allocated(0),arr(0){}
    array(uint s_count):used(0),allocated(0),arr(0){
        reallocate(s_count);
    }
    array(const array<T> &rhs):arr(0){
        *this = rhs;
    }
 
    ~array(){
        clear();
    }
    void reallocate(uint n_size){
        T* old_arr = arr;
        arr = new T[n_size];
        allocated = n_size;
 
        uint end = used < n_size ? used : n_size;
 
        for(uint i = 0; i < end; ++i)
            arr[i] = old_arr[i];
 
        if(allocated > end)
            for(uint i = end; i < allocated; ++i)
                arr[i] = 0;
 
        used = allocated;
        delete[] old_arr;
    }
 
    void push_back(const T &rhs){
        reallocate(used + 1);
        arr[used - 1] = rhs;
    }
 
    void operator=(const array<T>& rhs){
        if (arr)
            delete[] arr;
 
        if (rhs.allocated == 0)
            arr = 0;
        else
            arr = new T[rhs.allocated]; 
 
        used = rhs.used;
        allocated = rhs.allocated;
 
        for (uint i=0; i<rhs.used; ++i)
            arr[i] = rhs.arr[i];
    }
 
    bool operator == (const array<T>& rhs) const{
        if (used != rhs.used)
            return false;
 
        for (uint i = 0; i < rhs.used; ++i)
            if (arr[i] != rhs[i])
                return false;
        return true;
    }
 
    bool operator != (const array<T>& rhs) const{
        return !(*this == rhs);
    }
 
    T& operator [](uint index){
        assert(index < used);
        return arr[index];
    }
 
    const T& operator [](uint index) const{
        assert(index < used); 
        return arr[index];
    }
 
    const uint size() const{
        return used;
    }
    void clear(){
        if(arr)
            delete[] arr;
        arr = 0;
        used = allocated = 0;
    }
 
    void Input(){
        for(uint i = 0; i < used; ++i){
            cout<<"arr["<<i<<"]: ";
            cin>>arr[i];
        }
    }
 
    void Random(uint max){
        for(uint i = 0; i < used; ++i)
            arr[i] = rand()%max;
    }
 
    void sort_arr(bool (*foo)(int,int))
    {
        std::sort(arr,arr+used,foo);
    }
    const T max_element()
    {
        T max = arr[0];
        for(uint i = 1; i < used; ++i)//!i = 1;
            if(max < arr[i])
                max = arr[i]; //max elem
        return max;
    }
 
    const T max_abs()
    {
        T max = arr[0];
        for(uint i = 1; i < used; ++i)//!i = 1;
            if(abs(max) < abs(arr[i]))
                max = arr[i]; //max elem
        return max;
    }
 
    const T min_element()
    {
        T min = arr[0];
        for(uint i = 1; i < used; ++i)//!i = 1;
            if(min > arr[i])
                min = arr[i]; //min elem
        return min;
    }
 
    const size_t count_element(const T& elem)
    {
        return std::count(arr,arr+used,elem);
    }
    friend ofstream& operator<<(ofstream& stream, const array<T> &rhs);
private:
    T* arr;
    uint used;//
    uint allocated;
 
};
template<typename T>
ostream& operator<<(ostream& stream, const array<T> &rhs){
    stream<<"[ ";
    for(unsigned i = 0; i < rhs.size(); ++i)
        stream<<rhs[i]<<" ";
    stream<<"]";
    return stream;
}
 
bool foo(int i,int j){ return i > j; }
 
int main()
{
    array<int> arr;
    arr.push_back(10);
    arr.push_back(20);
    arr.push_back(30);
    arr.push_back(40);
    cout<<arr.size();
    cout<<endl<<arr[0]<<endl;
    cout<<arr<<endl;
    arr.Random(10);
    arr.sort_arr(foo);
    cout<<arr<<endl;
    cout<<arr.max_element()<<endl;
    cout<<arr.min_element()<<endl;
    cout<<arr.count_element(0)<<endl;
    arr.push_back(-8);
    cout<<arr.max_abs()<<endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru