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

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

13.03.2018, 23:16. Просмотров 857. Ответов 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
Изображения
 
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2018, 23:16
Ответы с готовыми решениями:

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

Поменять местами первую и последнюю части массива
Здравствуйте. Я новичок в С++. Мое домашнее задание следующее: массив состоит из введенных вручную...

Можно ли разрезать последовательность на две части и поменять их местами, чтобы последовательность стала симметричной?
Здрасте! Помогите пожалуйста с задачой из универа по с++ &quot;Можно ли разрезать последовательность...

Поменять местами первые две цифры числа из массива чисел
Задание таково, что нужно вывести интервал чисел и поменять местами 1 и 2 цифру у каждого числа...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
7
5908 / 4015 / 2326
Регистрация: 18.12.2017
Сообщений: 12,571
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
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 15
13.03.2018, 23:38  [ТС] 3
Добавлено через 39 секунд
Yetty, у мене проста не работает перемещение
0
5908 / 4015 / 2326
Регистрация: 18.12.2017
Сообщений: 12,571
13.03.2018, 23:41 4
Цитата Сообщение от SpL1NeR_1 Посмотреть сообщение
Yetty, у мене проста не работает перемещение
я понимаю что не работает, в той что я сбросил работает. сравни что не так и исправь ошибки в своём коде
0
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 15
13.03.2018, 23:50  [ТС] 5
Yetty, простите я проста немного устал и не заметил , все работает, я смотрел по первой линии ,
а ее не указал

Добавлено через 2 минуты
1 и последнюю строчку не меняет
0
5908 / 4015 / 2326
Регистрация: 18.12.2017
Сообщений: 12,571
14.03.2018, 01:29 6
Цитата Сообщение от SpL1NeR_1 Посмотреть сообщение
1 и последнюю строчку не меняет
та программа и не должна менять ( специально выделил звёздочками то, что не меняет ) - изменяйте код под свою задачу.
кстати возможно и Вам не нужно затрагивать элементы диагоналей (по картинке судить сложно, а условие задачи Вы не сбросили)
0
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 15
14.03.2018, 01:37  [ТС] 7
сравните
0
Миниатюры
Поменять местами две части массива  
5908 / 4015 / 2326
Регистрация: 18.12.2017
Сообщений: 12,571
14.03.2018, 02:05 8
Цитата Сообщение от SpL1NeR_1 Посмотреть сообщение
сравните
работает. что нужно сравнить ? что Вы хотите сказать ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2018, 02:05

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

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

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

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

Разделить слово на три части и поменять их местами
Разделить данное слово на три части и поменять их местами следующим образом: первую треть поместить...


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

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

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