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

Преобразовать массив удвоив длину его серии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу, которая находит сумму четных и сумму нечетных элементов массива http://www.cyberforum.ru/cpp-beginners/thread785958.html
Написать программу, которая находит сумму четных и сумму нечетных элементов массива.
C++ Написать программу, которая выводит содержимое массива наоборот Написать программу, которая выводит содержимое массива наоборот. Пример: массив 23 11 6 превращается в 6 23 11. http://www.cyberforum.ru/cpp-beginners/thread785957.html
C++ Как сделать вторую половину ромба
#include <iostream> using namespace std; void main () { for(int i=0; i<18; i++) { for(int j=18; j>i; j--) if(i-j<=18 && i+j<=18) { cout<<' ';
Функция и двухмерный массив (Поменять в массиве местами строки) C++
Дан массив действительных чисел размера m на n, где m и n – натуральные числа. Поменять в массиве местами строку с наибольшим и строку с наименьшим количеством различных элементов с использованием функции определения количества различных элементов в строке в двухмерном массиве. Помогите решить. Для одномерного вроде понял как, для двухмерного не могу никак понять.
C++ Поменять местами наибольшие по модулю элементы матрицы А(7*8) и массива В(76) http://www.cyberforum.ru/cpp-beginners/thread785929.html
Поменять местами наибольшие по модулю элементы матрицы А(7*8) и массива В(76).
C++ Запуск параллельного процесса Добрый вечер Подскажите пожалуйста Как на СИ++ реализовать параллельный процесс допустим чтобы там проверить нажатие каких либо клавиш. В данном случае клавишу ESC С функцией kbhit() получается как-то громоздко и неудобно #include <iostream> #include <conio.h> int main подробнее

Показать сообщение отдельно
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
17.02.2013, 18:44  [ТС]     Преобразовать массив удвоив длину его серии
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
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
void schet(int row[], int n) {
    int k=1,kol_s=0;
    for (int i=0; i<=n; i++){   
            if ( row[i] == row[i+1] ) k++;
            if ( (row[i] == row[i+1])&&row[i] != row[i+2]) { cout<<k<<"-dlina"<<endl; kol_s++; k=1; }
    }
    cout<<endl<<kol_s<<" kolich serii";
    
}
void vvod ( int row[], int n ) {
    for (int i=0; i<=n; i++) {
        cout<<"Vvedite "<<i<<" - element massiva"<<endl;
        cin>>row[i];
    }
}
 
void print  ( int row[], int n ) {
        for (int i=0; i<=n; i++)
        cout<<row[i]<<" ";
}
 
void main() {
int arr[40];
int n,k;
cin>>n>>k;
vvod(arr,n);
schet(arr,n);
 
getch();
 
}
кое что начёркал, нужно довести до ума пока ток серии выделяет

Добавлено через 20 часов 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
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
int lenOne,lenTwo;
 
void createRow(int row[],int row2[],int n,int start) {
    int j=0,leng=0,i=0;
    leng=n-start;
    lenTwo=leng;
    for (i=start; i<n; i++, j++) {
    row2[j]=row[i];
    }
    //for (int k=0; k<leng; k++) cout<<row2[k]<<" ";
 
}
void addToRow(int row[],int start,int len) {
    int i=0,leng;
    leng=start+len;
    lenOne=leng;
    for(i=start; i<=leng; i++) {
        row[i]=row[start-1];
 
    }
    //for (int k=0; k<leng; k++) cout<<row[k]<<" ";
 
 
}
void joinRow(int row[],int row2[],int lenOne,int lenTwo) {
    int j=0;
    lenTwo+=lenOne;
    for (lenOne; lenOne<=lenTwo; lenOne++,j++) {
         row[lenOne]=row2[j];
    }
 
    for (int k=0; k<lenTwo; k++) cout<<row[k]<<" ";
 
}
 
int len(int row[], int n, int s) {
    int len=1,num_s=0;
    for(int i=0; i<=n; i++) {
        if(row[i]==row[i+1]) len++;
        if((row[i]==row[i+1])&&(row[i]!=row[i+2])) {
            num_s++;
            if(num_s==s) {
                //cout<<"Dlina="<<len<<endl;
                return len;
                //break;
 
            }
            len=1;
 
        }
 
    }
       return len;
}
 
int start(int row[], int n, int s) {
    int kol_s=0,start=0;
    for (int i=1; i<=n; i++){
        if(row[i]==row[i+1])
            if ( row[i] != row[i-1] ) {
                kol_s++;
                if (s==kol_s) {
                    start=i;
                    break;
                }
            }
    }
    //cout<<"ser "<<kol_s<<endl;
    //cout<<"Start "<<start;
    return start;
 
}
 
/*void printAfter(int arr[],int start,int len) {
    for (int i=n; i>=start+len; n--) {
        arr[i] = arr[i-len];
    }
 
} */
/*void vvod ( int row[], int n ) {
    for (int i=0; i<=n; i++) {
        cout<<"Vvedite "<<i<<" - element massiva"<<endl;
        cin>>row[i];
    }
} */
 
void print  ( int row[], int n ) {
        for (int i=0; i<n; i++)
        cout<<row[i]<<" ";
}
 
void main() {
clrscr();
int arr[40]={1,1,1,1,2,2,3,3,3,5,5,5};
int arr2[20];
int n,k,st,ln;
cout<<"Razmer=";
cin>>n;
cout<<"Seria=";
cin>>k;
//vvod(arr,n);
clrscr();
print(arr,n);
st=start(arr,n,k);
ln=len(arr,n,k);
createRow(arr,arr2,n,st);
addToRow(arr,st,ln);
cout<<endl;
joinRow(arr,arr2,lenOne,lenTwo);
 
getch();
 
}
 
Текущее время: 18:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru