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

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

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

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

06.10.2011, 20:16. Просмотров 1412. Ответов 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
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
08.10.2011, 02:51 #16
KeyGen, просто выражение
C++
1
rand() % 15
может вернуть 0, если случайное число делится на 15, а на него выполняется деление, отсюда и значения в матрице 1.INF

STRAG 92, Из твоего примера
3 5 7
5 8 3
0 2 9
вот массив , а нада сделать вот такой
8 5 7
5 3 3
0 2 9
тоесть меняется диагональ
вообще не понятно, с чем должна меняться главная диагональ? В примере у тебя поменялись местами элементы А11 и А22. Если ты уточнишь задание, то тебе и помогут быстрее и качественнее, иначе каждый пишет код так, как понял задачу
0
alkagolik
Заблокирован
08.10.2011, 04:28 #17
я еще вчера ночью думал написать что было бы неплохо уточнить задание, а потом пошел курить и забыл. Неужели кто-то из запостивших коды, или просто текст понял что такое "поменять местами главную диагональ" ?
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
08.10.2011, 15:59 #18
Вот диагональ двигается:
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
#include <iostream>
#include <ctime>
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;
    
    cout << "ÈñõîäГ*ûé:\n";
    for (int i=0; i<3; i++){
        for (int j=0; j<3; j++)
        cout << mass[i][j];
        cout << endl;
        }
        
        cout << endl;
        int temp;
        int schet=1;
    
    for (;;){
        temp=mass[0][0];
        mass[0][0]=mass[1][1];
        mass[1][1]=mass[2][2];
        mass[2][2]=temp;
        
        
        float secs=1.5;
          clock_t delay = secs * CLOCKS_PER_SEC; 
          clock_t start = clock();
          while (clock() - start<delay);
          system("CLS");
        
        cout << "ÎáìåГ* В№ " << schet << " :\n";
    for (int i=0; i<3; i++){
        for (int j=0; j<3; j++)
        cout << mass[i][j];
        cout << endl;
        }
        schet++;
        }
    
    cout << "\n\n\n";
    system("PAUSE");
    return 0;
}
1
Миниатюры
Двухмерный массив   Двухмерный массив  
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
08.10.2011, 21:11  [ТС] #19
нада сделать в виде функций , и так что бы двухмерный массив был описан так как у меня в Функции InArray.

Добавлено через 3 минуты
нада сделать в виде функций , и так что бы двухмерный массив был описан так как у меня в Функции InArray.

вот так вот нада сделать , задание.

Ввод:

3 5 7
1 0 8
9 4 5

Вывод:

5 5 7
1 3 8
9 4 0

Смещение идёт с верхнего левого угла в нижний правый , и предедыщуй элемент становиться на место того что стоял.
0
alkagolik
Заблокирован
08.10.2011, 23:14 #20
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define size    5
int main(){
    int i, k, arr[size][size], tmp;
    srand(time(0));
    for(i = 0; i < size; ++i)
        for(k = 0; k < size; ++k)
            arr[i][k] = rand() % 20 + 1;
 
    printf("\nsource array:\n");
    for(i = 0; i < size; ++i){
        for(k = 0; k < size; ++k)
            printf("%3d", arr[i][k]);
        printf("\n");
    }
 
    i = 0; k = 0;
    tmp = arr[i][k];
    while (i < size - 1)
        arr[i++][k++] = arr[i + 1][k + 1];
    arr[size - 1][size - 1] = tmp;
 
    printf("\nmaked array:\n");
    for(i = 0; i < size; ++i){
        for(k = 0; k < size; ++k)
            printf("%3d", arr[i][k]);
        printf("\n");
    }
    printf("\n\n");
    return 0;
}
консоль
source array:
2 11 13 15 2
19 9 2 1 12
14 13 11 8 14
9 7 4 17 16
1 4 12 15 2

maked array:
9 11 13 15 2
19 11 2 1 12
14 13 17 8 14
9 7 4 2 16
1 4 12 15 2
0
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
09.10.2011, 10:23  [ТС] #21
Вот сделал Двухмерный массив, только теперь надо переделать Функцию Change и PrintArray , что бы
менялась главная диагональ.

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
#include<iostream>
using namespace std;
const int n=4,m=4;
void InArray (float [n][m]);
void Change (float [n][m]);
void PrintArray (float [n][m]);
void main()
{
        float a[n][m];
        InArray (a);
        PrintArray (a);
        Change (a);
        PrintArray (a);
        system("pause");
}
 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];
         }
 }
 void Change (float a[n][m])
 {
         for (int i=0;i>n;i++)
         {       
            for(int j=0;j>n;j++)      
         }
 }
 void PrintArray  (float a[n][m])
 {
        cout<<"Matrica A" <<endl;
         for (int i=0;i<n;i++)
         {
                 for (int j=0;j<n;j++){
                         cout<<a[j][i];}
                 cout <<endl;
         }
 }
0
alkagolik
Заблокирован
09.10.2011, 14:12 #22
Цитата Сообщение от STRAG 92 Посмотреть сообщение
только теперь надо переделать Функцию Change и PrintArray , что бы
менялась главная диагональ.
а пост #20 для кого писался? замените i\o на плюсовые и проблема решена.
0
09.10.2011, 14:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2011, 14:12
Привет! Вот еще темы с ответами:

Двухмерный массив - 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. Братья и...


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

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

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