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

Одномерный массив. Сдвинуть элементы циклически на n позиций влево - C++

Восстановить пароль Регистрация
 
Tostuk
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 12
14.01.2013, 20:06     Одномерный массив. Сдвинуть элементы циклически на n позиций влево #1
Ввести одномерный статический массив из k чисел. Сдвинуть элементы массива циклически на n позиций влево.

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
#include <iostream>
#include <conio.h>
#include <iomanip>
int main()
 
const int MAX_DIMENSION = 10;
    int i, j, n, def;
    double a[MAX_DIMENSION], temp, savedElement;
 
    do {
        cout << "Vvedite razmer (maximum = " << MAX_DIMENSION << "): "; // ¬вод одномерного массива
    
        cin >> n;
    } while (n > MAX_DIMENSION);
 
    for (i=0; i<n; i++) {
        cout << "Vvedite a[" << i << "]= " ;
        cin >> a[i];
    }
 
    cout << "Massiv a:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    }
 
    cout << endl << "Vvedite veli4inu sdviga: ";
    cin >> def;
 
    //processing array
    for (j = 0; j < def; j++) {
        for (i = 0; i < n - 1; i++) {
            if (i == 0) {
                savedElement = a[i];
            }
            a[i] = a[i + 1];
        }
 
        a[n-1] = savedElement;
    }
 
    cout << "Massiv a posle sdviga:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    }
Программа не моя, но очень нуждаюсь в ее работоспособности.

ругается
--------------------Configuration: laba4 - Win32 Debug--------------------
Compiling...
laba4.cpp
D:\laba4\laba4.cpp(6) : warning C4518: 'int ' : storage-class or type specifier(s) unexpected here; ignored
D:\laba4\laba4.cpp(6) : error C2146: syntax error : missing ';' before identifier 'MAX_DIMENSION'
D:\laba4\laba4.cpp(6) : error C2270: 'main' : modifiers not allowed on nonmember functions
D:\laba4\laba4.cpp(6) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

laba4.obj - 3 error(s), 1 warning(s)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 20:06     Одномерный массив. Сдвинуть элементы циклически на n позиций влево
Посмотрите здесь:

Сдвинуть элементы массива циклически на n позиций вправо. C++
Сдвинуть все элементы последовательности циклически на k позиций влево C++
Сдвинуть циклически элементы одномерного массива на k позиций влево C++
Все элементы массива X(30) циклически сдвинуть на n позиций влево C++
Указатели: сдвинуть элементы циклически на 1 позицию влево C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
14.01.2013, 20:13     Одномерный массив. Сдвинуть элементы циклически на n позиций влево #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
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main() 
{
 
const int MAX_DIMENSION = 10;
    int i, j, n, def;
    double a[MAX_DIMENSION], temp, savedElement;
 
    do {
        cout << "Vvedite razmer (maximum = " << MAX_DIMENSION << "): "; // ¬вод одномерного массива
    
        cin >> n;
    } while (n > MAX_DIMENSION);
 
    for (i=0; i<n; i++) {
        cout << "Vvedite a[" << i << "]= " ;
        cin >> a[i];
    }
 
    cout << "Massiv a:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    }
 
    cout << endl << "Vvedite veli4inu sdviga: ";
    cin >> def;
 
    //processing array
    for (j = 0; j < def; j++) {
        for (i = 0; i < n - 1; i++) {
            if (i == 0) {
                savedElement = a[i];
            }
            a[i] = a[i + 1];
        }
 
        a[n-1] = savedElement;
    }
 
    cout << "Massiv a posle sdviga:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    } 
}
Tostuk
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 12
14.01.2013, 20:15  [ТС]     Одномерный массив. Сдвинуть элементы циклически на n позиций влево #3
Цитата Сообщение от David Sylva Посмотреть сообщение
Поправил
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
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main() 
{
 
const int MAX_DIMENSION = 10;
    int i, j, n, def;
    double a[MAX_DIMENSION], temp, savedElement;
 
    do {
        cout << "Vvedite razmer (maximum = " << MAX_DIMENSION << "): "; // ¬вод одномерного массива
    
        cin >> n;
    } while (n > MAX_DIMENSION);
 
    for (i=0; i<n; i++) {
        cout << "Vvedite a[" << i << "]= " ;
        cin >> a[i];
    }
 
    cout << "Massiv a:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    }
 
    cout << endl << "Vvedite veli4inu sdviga: ";
    cin >> def;
 
    //processing array
    for (j = 0; j < def; j++) {
        for (i = 0; i < n - 1; i++) {
            if (i == 0) {
                savedElement = a[i];
            }
            a[i] = a[i + 1];
        }
 
        a[n-1] = savedElement;
    }
 
    cout << "Massiv a posle sdviga:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    } 
}
Все равно ругается
--------------------Configuration: laba4 - Win32 Debug--------------------
Compiling...
laba4.cpp
D:\laba4\laba4.cpp(49) : warning C4508: 'main' : function should return a value; 'void' return type assumed
D:\laba4\laba4.cpp(10) : warning C4101: 'temp' : unreferenced local variable

laba4.obj - 0 error(s), 2 warning(s)
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
14.01.2013, 20:18     Одномерный массив. Сдвинуть элементы циклически на n позиций влево #4
Это не ошибки, а предупреждения, программа будет работать с ними.

Добавлено через 1 минуту
Вот так без предупреждений
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
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main() 
{
 
const int MAX_DIMENSION = 10;
    int i, j, n, def;
    double a[MAX_DIMENSION], savedElement;
 
    do {
        cout << "Vvedite razmer (maximum = " << MAX_DIMENSION << "): "; // ¬вод одномерного массива
    
        cin >> n;
    } while (n > MAX_DIMENSION);
 
    for (i=0; i<n; i++) {
        cout << "Vvedite a[" << i << "]= " ;
        cin >> a[i];
    }
 
    cout << "Massiv a:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    }
 
    cout << endl << "Vvedite veli4inu sdviga: ";
    cin >> def;
 
    //processing array
    for (j = 0; j < def; j++) {
        for (i = 0; i < n - 1; i++) {
            if (i == 0) {
                savedElement = a[i];
            }
            a[i] = a[i + 1];
        }
 
        a[n-1] = savedElement;
    }
 
    cout << "Massiv a posle sdviga:" << endl; // ¬ывод одномерного массива
 
    for (i=0; i<n; i++) {
        cout << a[i] << " " ;
    }  
    return 0;
}
Tostuk
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 12
17.01.2013, 03:14  [ТС]     Одномерный массив. Сдвинуть элементы циклически на n позиций влево #5
Еще вопрос, вот есть условие создать одномерный массив, подсчитать сумму всех елементов стоящих между первым и вторым отрицательным числом массива.
Сделал так, что первое и второе число он уже находит, осталось как-то все элементы между ними сложить
подскажите, как сложить элементы массива от позиции "poz" до позиции "pozz" (poz/pozz обозначения используемые у меня в коде, обозначают номер элемента массива до/перед отрицательным числом)

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
#include<iostream.h>
#include<math.h>
#include<iomanip.h>
int main()
{
    int i,n,s,pol,poz,poll,pozz,sum;
    int a[10];
    cout <<"vvedite n:"<<endl;
    cin>>n;
    
    for (i=0;i<n;i++)
    { 
        cout<<"vvvedite a["<<i<<"]=";
    cin>>a[i];
    } //Vvod odnomernogo massiva
        cout << "massiv a="<<endl;
            for (i=0;i<n;i++)
                cout <<a[i]<<" ";
            cout <<endl;
            s=0;
            for (i=0;i<n;i++)
                //vi4eslenie pervogo otricatel'nogo
            {
                if(a[i]<0)  { pol=a[i];poz=i;break;}
        
            
    
            }
    cout <<"pervoe otricatel'noe 4islo="<<pol<<endl;
 
    
    
    for (i=poz+1;i<=n;i++)
        //vtoroe otricatel'noe 4islo
            {
                if(a[i]<0)  { poll=a[i];pozz=i;break;}
    
            }   
    cout <<"vtoroe otricatel'noe 4islo="<<poll<<endl;
        
 
    for (i=poz+1;i<pozz;i++)
    {
        sum=a[i];
    }
    cout <<"summa="<<sum<<endl;
            return 0;
}
Yandex
Объявления
17.01.2013, 03:14     Одномерный массив. Сдвинуть элементы циклически на n позиций влево
Ответ Создать тему
Опции темы

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