Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
SpL1NeR_1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 13
1

Поменять местами две части массива

13.03.2018, 23:16. Просмотров 124. Ответов 7
Метки нет (Все метки)

Помогите не понимаю почему не меняет местами правильно.
Задача поменять две части как на рисунке (черный цвет) нарезаем как правильно менять

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
#include <Windows.h>
#include <iostream>
#include <ctime>
 
using namespace std;
 const int n=10;
int main()
{  
  int x,s; 
float k;
int i, j;
int a[n][n]; 
 
for (i = 0; i < n; ++i)
    for (j = 0; j < n; ++j)
    {
        a[i][j] = rand() % 5; 
            }
    for (i = 0; i < 10; ++i)
    {
        for (j = 0; j < 10; ++j)
        {
            cout << a[i][j] << ' '; 
        }
        cout << "\n"; 
    }
 
  //===============================================
   for (i = 0; i < n; ++i)
    for (j = 0; j < n; ++j)
if(j<=i && j<=n-i) 
 {
  x=a[i][j];
  a[i][j]=a[i][n-j];
  a[i][n-j]=x;
  s=s+a[i][j]+x;
}
{
    cout<<endl;
cout<<"zamina"<<endl<<endl;
 
}
 for (i = 0; i < 10; ++i)
    {
        for (j = 0; j < 10; ++j)
        {
            cout << a[i][j] << ' ';
        }
        cout << "\n"; 
    }
cout<<"suma="<<s<<endl;
}
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2018, 23:16
Ответы с готовыми решениями:

Поменять части массива местами
Дан массив M, размерность задать в программе с помощью именованной константы. Указать...

Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива
Помогите Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного...

Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива
Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива....

Поменять местами дробную и целую части числа
Дано действительное число R вида nnn. ddd (три цифровых разряда в дробной и целой частях)....

Поменять местами две серии в массиве
Помогитие пожалуйста написать программку на С. Задан целочисленный массив размера N. Поменять...

7
Yetty
785 / 663 / 561
Регистрация: 18.12.2017
Сообщений: 2,653
13.03.2018, 23:28 2
SpL1NeR_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
#include <iostream>
using namespace std;
 
void input(int a[][9], const int n);
void rev(int a[][9], const int n);
int main()
{
    const int n=9;
    int a[n][n];
    input(a,n);
    rev(a,n);
    system("pause");
    return 0;
}
void input(int a[][9], const int n){
    int i,j;
    for (i=0;i<n;i++)
    {
        for (j=0;j<9;j++)
        {
        a[i][j]=rand()%9;
        if (i==j || i==8-j) cout <<"*"<<a[i][j]<<"*"<<"\t";
        else cout<<a[i][j]<<"\t";    
        }
    cout<<endl;
    }
}
void rev (int a[][9], const int n){
    int i,j, temp;
    cout<<endl;
    for (j=0;j<n/2;j++){
        for(i=j+1;i<n-j-1;i++){
            temp=a[i][j];
            a[i][j]=a[i][n-j-1];
            a[i][n-j-1]=temp;
        }
    }
    for (i=0;i<n;i++){
        for (j=0;j<9;j++){
                 if (i==j || i==8-j) cout <<"*"<<a[i][j]<<"*"<<"\t";
        else cout<<a[i][j]<<"\t";}
              cout<<endl;}
}
0
SpL1NeR_1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 13
13.03.2018, 23:38  [ТС] 3
Добавлено через 39 секунд
Yetty, у мене проста не работает перемещение
0
Yetty
785 / 663 / 561
Регистрация: 18.12.2017
Сообщений: 2,653
13.03.2018, 23:41 4
Цитата Сообщение от SpL1NeR_1 Посмотреть сообщение
Yetty, у мене проста не работает перемещение
я понимаю что не работает, в той что я сбросил работает. сравни что не так и исправь ошибки в своём коде
0
SpL1NeR_1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 13
13.03.2018, 23:50  [ТС] 5
Yetty, простите я проста немного устал и не заметил , все работает, я смотрел по первой линии ,
а ее не указал

Добавлено через 2 минуты
1 и последнюю строчку не меняет
0
Yetty
785 / 663 / 561
Регистрация: 18.12.2017
Сообщений: 2,653
14.03.2018, 01:29 6
Цитата Сообщение от SpL1NeR_1 Посмотреть сообщение
1 и последнюю строчку не меняет
та программа и не должна менять ( специально выделил звёздочками то, что не меняет ) - изменяйте код под свою задачу.
кстати возможно и Вам не нужно затрагивать элементы диагоналей (по картинке судить сложно, а условие задачи Вы не сбросили)
0
SpL1NeR_1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 13
14.03.2018, 01:37  [ТС] 7
сравните
0
Миниатюры
Поменять местами две части массива  
Yetty
785 / 663 / 561
Регистрация: 18.12.2017
Сообщений: 2,653
14.03.2018, 02:05 8
Цитата Сообщение от SpL1NeR_1 Посмотреть сообщение
сравните
работает. что нужно сравнить ? что Вы хотите сказать ?
0
14.03.2018, 02:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2018, 02:05

Поменять местами две серии в массиве.
Помогите пожалуйста со следующей задачей. Задан целочисленный массив размера N. Поменять ...

Поменять местами две строки матрицы
1 6 7 2 5 8 3 4 9. Язык программирования Си.

Поменять части матрицы(из файла) местами с использованием функции
Дана задача: Даны: n - переменная величина а(2n*2n) - матрица, разбитая на 4 равных...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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