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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
#1

Двухмерный массив - C++

06.10.2011, 20:16. Просмотров 1352. Ответов 21
Метки нет (Все метки)

Задание , в двухмерном массиве поменять местами главную диагональ.
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>
const int n=3,m=3;
void InArray (float [n][m]);
void Change (float [n][m]);
void PrintArray (float [n][m]);
void main()
{
float a[n][m];
InArray (a);
Change (a);
PrintArray (a);
}
 void InArray (float [n][m])
 cout<<"Vvedite massiv"<<n<<"*"<<m<<endl;
 for (int i=0;i<n;i++)
 {              
 for (int j=0;j<m;j++)
 cin>> a[i][j];
 cout<<endl;
 }
 }
 void Change (float a[i][j])
 {
 for (int i=0;i<n;i++)
 {
 cout<<endl;
 for (int j=0;j<m;j++)
 }
 }
 void PrintArray  (float a[n][m])
 {
 cout<<"Matrica A \n";
 for (int i=0;i<m;i++)
 {
 for (int j=0;j<n;j++)
 cout<<a[j][i];
 cout<<endl;
 }
 }
 void Change (float a[n][m])
 {
 cout<<"Massiv B \n";
 for ( int i>0;i<n;i++)
 {
 for ( int j>0;j<m;j++)
 cout<<" "<<a[i][j];
 }
 }
вот написал код , но он не правильно работает (((( , меняет столбцы местами (
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2011, 20:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двухмерный массив (C++):

двухмерный массив - C++
Сложить элементы двухмерного массива. Выполнить с помощью указателей. С Помощью указателей если сможете хелп

Двухмерный массив. - C++
Помогите решить задачу на программе С++. Вот условие: Соседями элемента Aij в матрице назовем элементы Akl c i-1&lt;=k&lt;=i+1, j-1&lt;=1&lt;=j+1,...

двухмерный массив.. - C++
ввести матрицу размером N* M.память массива выделить динамически.найти минимальный среди элементов,лежащих выше главной диоганали

Двухмерный массив - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { int *b; int...

двухмерный массив - C++
дан двухмерный массив 5 на 5 a)найти все строчки которые начинаются с отрицательного элемента b)и в строчках найти элемент главной...

Двухмерный массив - C++
Как в двухмерном массиве выделить, а точнее работать с элементами массива которые находятся до главной диагонали. Вопрос в том как сделать...

21
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
06.10.2011, 20:28 #2
вы на чём писали у меня ваш код на mvc 6 даже не откомпилировался !!! тьма ошибок
0
Петррр
5962 / 3399 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
06.10.2011, 20:34 #3
Borland небось
0
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
06.10.2011, 20:39  [ТС] #4
Подскажите тогда как написать на Вижуале С++
0
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
06.10.2011, 20:59 #5
тут синтаксических ошибок куча щас постараюсь переделать по си плюс плюсовски

Добавлено через 56 секунд
Цитата Сообщение от STRAG 92 Посмотреть сообщение
Задание , в двухмерном массиве поменять местами главную диагональ.
кстати а чё эт значит на рисунке можно?

Добавлено через 5 минут
короче вобще бред
вот например тут нужен using namespace std;
далее
если цедура получает (float [n][m])
то тогда в её описание должно быть
(float a[n][m])
0
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
06.10.2011, 21:40  [ТС] #6
3 5 7
5 8 3
0 2 9

вот массив , а нада сделать вот такой

8 5 7
5 3 3
0 2 9

тоесть меняется диагональ
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
07.10.2011, 00:21 #7
Цитата Сообщение от STRAG 92 Посмотреть сообщение
3 5 7
5 8 3
0 2 9

вот массив , а надо сделать вот такой

8 5 7
5 3 3
0 2 9

то есть меняется диагональ
Может быть вот такой:

8 5 7
5 9 3
0 2 3

?
0
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
07.10.2011, 12:17  [ТС] #8
Вот переписал код под Вижуал , но неработает
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
#include<iostream>
using namespace std;
const int n=3,m=3;
void InArray (float [n][m]);
void Change (float [n][m]);
void PrintArray (float [n][m]);
void main()
{
float a[n][m];
InArray (a);
Change (a);
PrintArray (a);
}
 void InArray (float a[n][m])
 { 
cout<<"Vvedite massiv"<<n<<"*"<<m<<endl;
 for (int i=0;i<n;i++)
 {              
 for (int j=0;j<m;j++)
 cin>> a[i][j];
 cout<<endl;
 }
 }
void Change ( float a[n][m])
{
    for ( int i=0;i<n;i++)
    {
        for ( int j=0;j<m;j++)
    }
}
void PrintArray ( float a[n][m])
{
    cout<<"Matrica A \n";
    for ( int i=0;i<n;i++)
    {
        for( int j=0;j<m;j++)
            cout<<a[j][i]<<" ";
        cout<<endl;
    }
}
0
co6ak
Кошковед
408 / 501 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
07.10.2011, 12:36 #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
53
54
55
56
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
void print  ( float ** , int );
void fill   ( float ** , int );
void change ( float ** , int );
 
int main ( int argc, char** argv )
{
    srand( time ( NULL ) );
    int N;
    std::cout << "Enter size (N): ";
    std::cin  >> N;
 
    float ** matr = new float * [ N ];
    for ( int i = 0; i < N; i ++ )
        matr[i] = new float [ N ];
    fill    ( matr, N );
    print   ( matr, N );
    change  ( matr, N );
    system("pause");
    return 0;
}
 
void print ( float ** matr, int size )
{
    for ( int i = 0; i < size; i ++ )
    {
        std::cout << std::endl;
        for ( int j = 0; j < size; j ++ )
            std::cout << "\t" << matr[i][j];
    }
}
 
void fill (float ** matr, int size)
{
    for ( int i = 0; i < size; i ++ )
    {
        for ( int j = 0; j < size; j ++ )
        {
            matr[i][j]  = rand() % 50 - rand() % 25;
            matr[i][j] /= rand() % 15;
        }
    }
}
void change(float ** matr, int size)
{
    for ( int i = 0; i < size; i ++ )
    {
        float tmp = matr[i][i];
        matr[i][i] = matr[i][ size -1 -i ];
        matr[i][size -1 - i] = tmp;
    }
    print(matr, size);
}
должно работать. не проверял.
если что - ошибки скинь сюда
1
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
07.10.2011, 12:46  [ТС] #10
Цитата Сообщение от co6ak Посмотреть сообщение
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
void print  ( float ** , int );
void fill   ( float ** , int );
void change ( float ** , int );
 
int main ( int argc, char** argv )
{
    srand( time ( NULL ) );
    int N;
    std::cout << "Enter size (N): ";
    std::cin  >> N;
 
    float ** matr = new float * [ N ];
    for ( int i = 0; i < N; i ++ )
        matr[i] = new float [ N ];
    fill    ( matr, N );
    print   ( matr, N );
    change  ( matr, N );
    system("pause");
    return 0;
}
 
void print ( float ** matr, int size )
{
    for ( int i = 0; i < size; i ++ )
    {
        std::cout << std::endl;
        for ( int j = 0; j < size; j ++ )
            std::cout << "\t" << matr[i][j];
    }
}
 
void fill (float ** matr, int size)
{
    for ( int i = 0; i < size; i ++ )
    {
        for ( int j = 0; j < size; j ++ )
        {
            matr[i][j]  = rand() % 50 - rand() % 25;
            matr[i][j] /= rand() % 15;
        }
    }
}
void change(float ** matr, int size)
{
    for ( int i = 0; i < size; i ++ )
    {
        float tmp = matr[i][i];
        matr[i][i] = matr[i][ size -1 -i ];
        matr[i][size -1 - i] = tmp;
    }
    print(matr, size);
}
должно работать. не проверял.
если что - ошибки скинь сюда
Мне нужно в Двухмерном массиве поменять местами главную диагональ.
0
co6ak
Кошковед
408 / 501 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
07.10.2011, 12:47 #11
это и есть двумерный массив. тока квадратный
0
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
07.10.2011, 13:14  [ТС] #12
а можно пожалуйста как то по проще его написать ???
0
co6ak
Кошковед
408 / 501 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
07.10.2011, 14:35 #13
куда уж проще-то.

максимум то приходит на ум - после #include <iostream>
написать using namespace std;и убрать все std::

Добавлено через 51 секунду
и убрать #include <time.h>
+ убрать srand( time ( null ) );
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
08.10.2011, 02:13 #14
Цитата Сообщение от STRAG 92 Посмотреть сообщение
3 5 7
5 8 3
0 2 9

вот массив , а нада сделать вот такой

8 5 7
5 3 3
0 2 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;
    
int main()
{
    setlocale(LC_ALL, "rus");
    
    int mass[3][3]={};
    
    mass[0][0]=3;
    mass[0][1]=5;
    mass[0][2]=7;
    mass[1][0]=5;
    mass[1][1]=8;
    mass[1][2]=3;
    mass[2][0]=0;
    mass[2][1]=2;
    mass[2][2]=9;
    
    int temp=0;
    
    cout << "ÈñõîäГ*ûé:\n";
    for (int i=0; i<3; i++){
        for (int j=0; j<3; j++)
        cout << mass[i][j];
        cout << endl;
        }
        
        cout << endl;
 
    for (int i=0; i<3; i++)
        for (int j=0; j<3; j++)
        switch(mass[i][j]){
        case 3: if(temp==0)
                mass[i][j]=8;
                temp++;
                break;
        case 8: mass[i][j]=3;
                break;
                }
    
    cout << "Ïîëó÷èëîñü:\n";
    for (int i=0; i<3; i++){
        for (int j=0; j<3; j++)
        cout << mass[i][j];
        cout << endl;
        }
    
    cout << "\n\n\n";
    system("PAUSE");
    return 0;
}
1
Миниатюры
Двухмерный массив  
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
08.10.2011, 02:21 #15
Цитата Сообщение от co6ak Посмотреть сообщение
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
void print  ( float ** , int );
void fill   ( float ** , int );
void change ( float ** , int );
 
int main ( int argc, char** argv )
{
    srand( time ( NULL ) );
    int N;
    std::cout << "Enter size (N): ";
    std::cin  >> N;
 
    float ** matr = new float * [ N ];
    for ( int i = 0; i < N; i ++ )
        matr[i] = new float [ N ];
    fill    ( matr, N );
    print   ( matr, N );
    change  ( matr, N );
    system("pause");
    return 0;
}
 
void print ( float ** matr, int size )
{
    for ( int i = 0; i < size; i ++ )
    {
        std::cout << std::endl;
        for ( int j = 0; j < size; j ++ )
            std::cout << "\t" << matr[i][j];
    }
}
 
void fill (float ** matr, int size)
{
    for ( int i = 0; i < size; i ++ )
    {
        for ( int j = 0; j < size; j ++ )
        {
            matr[i][j]  = rand() % 50 - rand() % 25;
            matr[i][j] /= rand() % 15;
        }
    }
}
void change(float ** matr, int size)
{
    for ( int i = 0; i < size; i ++ )
    {
        float tmp = matr[i][i];
        matr[i][i] = matr[i][ size -1 -i ];
        matr[i][size -1 - i] = tmp;
    }
    print(matr, size);
}
должно работать. не проверял.
если что - ошибки скинь сюда
Это что за жесть?) Компилировал: Dev-C++ 4.9.9.2
0
Миниатюры
Двухмерный массив  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2011, 02:21
Привет! Вот еще темы с ответами:

Двухмерный массив - C++
Здравствуйте, уважаемые форумчане. Прошу помощи: нужно вывести номер строки, в которой содержится самая длинная серия элементов.

двухмерный массив - C++
дан двухмерный массив n=m найти количество нулевых елементов которые находятся под побочной диагональю

Двухмерный массив - C++
#include &lt;iostream&gt; using namespace std; int main() { const int mAX_A =3; const int mAX_B=4; //Обязательно нужен...

Двухмерный массив - C++
Всем привет! Я хочу уверовать с++,но не получается. И меня постоянно преследует проклятье компилятора Visual Studio. Братья и...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
08.10.2011, 02:21
Ответ Создать тему
Опции темы

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