1 / 1 / 2
Регистрация: 14.11.2010
Сообщений: 57
1

Дан двумерный массив, поменять элементы относительно главной диагонали

27.11.2010, 14:56. Показов 7622. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан, Двумерный масив Н*М(3*3) , поменять эл-нты относительно главной диагонали.


C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
const int n=3,m=3;
void main()
{
int a[n][m];
cout<<"Введите масив:"<<n<<"*"<<m<<endl;
for (int i=0;i<n;i++)
{
  for(int j=0;j<m;j++)
  cin>>a[i][j];
  cout<<endl;
}}

Вот начал , делать , но тут проблемка у меня все числа идут в 1 столбец , а мне нада задать мартицей.

И как поменять , главную диагональ ???? использовать переменную ?

 Комментарий модератора 
Дублирование тем запрещено правилами форума (п.3.4).
Все ваши одинаковые темы объеденены в одну. Любые несостыковки в связи с перемещением - на Вашей совести.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2010, 14:56
Ответы с готовыми решениями:

Функции: поменять элементы относительно главной диагонали
Дан двухмерный массив, зделать в виде функции , и поменять элементы относительно главной диагонали....

Является ли двумерный массив симметричным относительно главной диагонали
Проверьте, является ли двумерный массив симметричным относительно главной диагонали. Главная...

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

Поменять местами элементы матрицы, симметричные относительно главной диагонали
Очень поможете)

26
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
16.12.2010, 17:29 21
Author24 — интернет-сервис помощи студентам
если задача решает верно могу переделать его и через функцию... но можете попробовать переделать ее сами, будут вопросы пишите.

P/s: если помог, то ЖМИ спасибо=)

Добавлено через 9 минут
ну как и изначально требовалось написал и функцией...

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 <iostream>
 
using namespace std;
 
void matrix(int **arr, int n)
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (i>j)
            {
                swap(arr[i][j], arr[j][i]);
            }
        }
    }
 
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}
 
int main()
{
    int n;
    cin >> n;
 
    int **mas=new int *[n];
    for (int i=0; i<n; i++)
    {
        mas[i]=new int [n];
    }
    
    int yaya=1;
    int k=0, _k_=0;
 
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cin >> mas[i][j];
        }
    }
    matrix((int**)mas, n);
 
    return 0;
}
1
191 / 175 / 12
Регистрация: 04.09.2010
Сообщений: 656
16.12.2010, 17:30 22
попробуйте так
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 <iostream.h>
const int n=3,m=3;
void InArray ( float *a);
void Change  ( float *a);
void PrintArray ( float *a);
void main()
{
 float a[n][m];
 a=InArray (a);
 a=Change (a);
 PrintArray (a);
 }
void InArray (float *a)
 {
 
   cout<<"ведите масив "<<n<<"*"<<m<<endl;
   for (int i=0;i<n;i++)
{
  for(int j=0;j<m;j++)
{
  cin>>a[i][j];
  cout<<endl;
}
  }
     cout<<"Матрица A: \n ";
 for(i=0;i<n;i++)
  {
    cout<<endl;
    for(int j=0;j<m;j++)
    cout<<"  "<<a[i][j];
        }
return a;
         }
void Change (float *a)
 {  
for (i=0; i<n; i++)
        {
        cout<<endl;
       for(int j=0; j<n; j++)
       
}
       }
      void PrintArray (float *a)
 {
   cout<<"Матрица B: \n";
    for (int i=0;i<n;i++)
     {
      for ( int j=0;j<n;j++)
       cout<<a[i][j]<<" ";
       cout<<endl;
       }
     }
1
1 / 1 / 2
Регистрация: 14.11.2010
Сообщений: 57
16.12.2010, 17:37  [ТС] 23
Цитата Сообщение от strag 93 Посмотреть сообщение
{
24 строка
вот где жалуеться , пишет Declaration terminated incorrectly ( Декларация, законченная неправильно)
0
191 / 175 / 12
Регистрация: 04.09.2010
Сообщений: 656
16.12.2010, 17:41 24
попробуйте использовать вышеприведенный код. сам не собирал, только исправил ошибки, которые нашел, в том числе и эту фигурную скобку.
0
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
16.12.2010, 18:08 25
strag 93, вот твои ошибки!!!
C++
1
2
3
a=InArray (a);
 a=Change (a);
 PrintArray (a);
ты птаешься здесь переделать из двумерного в одномерный массив

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void InArray (float **a)
{
    cout<<"ведите масив "<<n<<"*"<<m<<endl;
    for (int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cin>>a[i][j];
            cout<<endl;
        }
    }
    cout<<"Матрица A: \n ";
    for(int i=0;i<n;i++)
    {
        cout<<endl;
        for(int j=0;j<m;j++)
        cout<<"  "<<a[i][j];
    }
    [B]return a;[/B]
}
функция
C++
1
[B]void[/B]
не возвращает значения!!!

C++
1
2
3
4
5
6
7
8
void Change (float *a)
{
    for (int i=0; i<n; i++)
    {
        cout<<endl;
        for(int j=0; j<n; j++)
    }
}
а вот это для чего я не пойму... просто цикл запустили... для чего???

Добавлено через 17 минут
вот и твое решение я переделал!!! теперь решает все верно!!!!

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
#include <iostream>
using namespace std;
const int n=3,m=3;
void InArray ( float **a);
void Change  ( float **a);
void PrintArray ( float **a);
void main()
{
    float **a = new float *[n];
    for (int i=0; i<n; i++)
    {
        a[i]=new float[m];
    }
 InArray ((float**)a);
 Change ((float**)a);
 PrintArray ((float**)a);
 }
void InArray (float **a)
{
    cout<<"ведите масив "<<n<<"*"<<m<<endl;
    for (int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cin>>a[i][j];
        }
    }
    cout<<"Матрица A: \n ";
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        cout<<"  "<<a[i][j];
    }
}
void Change (float **a)
{
    for (int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            if (i>j)
            {
                swap(a[i][j], a[j][i]);
            }
        }
    }
}
       
void PrintArray (float **a)
{
    cout<<"Матрица B: \n";
    for (int i=0;i<n;i++)
    {
        for ( int j=0;j<n;j++)
        cout<<a[i][j]<<" ";
        cout<<endl;
    }
}
0
191 / 175 / 12
Регистрация: 04.09.2010
Сообщений: 656
16.12.2010, 18:08 26
верно, не заметил столько ошибок, аж глаза разбегаются
strag 93, вам ошибки то свои понятны ?
0
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
16.12.2010, 18:13 27
проверьте выше указанный мой код, вроде бы еще ошибок там не нашел... будут вопросы пишите!
P/s: если помог, то ЖМИ сапасибо=)
0
16.12.2010, 18:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2010, 18:13
Помогаю со студенческими работами здесь

Поменять местами элементы матрицы, симметричные относительно главной диагонали
Дан Двумерный массив размером n × n. Составить программу, которая меняет местами все элементы,...

Поменять местами элементы квадратной матрицы относительно главной диагонали
Создать массив A(nxn). Поменять местами элементы симметрично главной диагонали.

Проверить, является ли двумерный массив симметричным относительно главной диагонали
#include &lt;iostream&gt; using namespace std; //проверка симметричности матрицы int main() { int n;...

Проверить является ли двумерный массив симметричным относительно главной диагонали
Задача №5 Дано число n, не превосходящее 10, и массив размером n × n. Проверьте, является ли...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru