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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.74
BumbleBee
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 10
#1

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали - C++

14.03.2010, 22:03. Просмотров 5609. Ответов 14
Метки нет (Все метки)

Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2010, 22:03     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Посмотрите здесь:
C++ Заполнить матрицу случайными числами. Отобразить мат-рицу симметрично относительно главной диагонали.
Заполнить матрицу случайными числами. Отобразить симметрично относительно вертикальной оси C++
C++ Отобразить матрицу симметрично относительно главной диагонали
Массивы. Отобразить матрицу симметрично относительно главной диагонали C++
C++ Заполнить квадратную матрицу случайными числами, а затем обнулить элементы выше главной диагонали
C++ Заполнить матрицу случайными числами. На главной диагонали разместить суммы элементов, которые лежат на той же строке и том же столбце
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
14.03.2010, 23:40     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #2
Пиши свой код, что не получается поможем.
BumbleBee
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 10
15.03.2010, 00:06  [ТС]     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #3
я первокурсник политеха и пока не очень розбираюсь((( помогите плз
kirjushyk
60 / 22 / 2
Регистрация: 13.03.2010
Сообщений: 65
15.03.2010, 00:15     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #4
Заполнить матрицу случайными числами.
C
1
2
3
4
5
6
7
8
9
10
...
#include <stdlib.h>
...
int i;
int j;
int matrix[9][9];
for (i = 0; i < 9; i++)
    for (j = 0; j < 9; j++)
        matrix[9][9] = rand();
...
Отобразить матрицу симметрично относительно главной диагонали.
Отобразить матрицу легко - нужно всего лишь вывести все элементы в стандартный поток вывода:
C
1
2
3
4
5
6
7
8
9
10
...
#include <stdio.h>
...
for (i = 0; i < 9; i++)
{
    for (j = 0; j < 9; j++)
        printf("%d\t",matrix[9][9]);
    printf("\n");
}
...
Но я не понимаю, что значит отобразить симметрично (картинка нисколько не поясняет сути задания).

Добавлено через 11 секунд
Заполнить матрицу случайными числами.
C
1
2
3
4
5
6
7
8
9
10
...
#include <stdlib.h>
...
int i;
int j;
int matrix[9][9];
for (i = 0; i < 9; i++)
    for (j = 0; j < 9; j++)
        matrix[9][9] = rand();
...
Отобразить матрицу симметрично относительно главной диагонали.
Отобразить матрицу легко - нужно всего лишь вывести все элементы в стандартный поток вывода:
C
1
2
3
4
5
6
7
8
9
10
...
#include <stdio.h>
...
for (i = 0; i < 9; i++)
{
    for (j = 0; j < 9; j++)
        printf("%d\t",matrix[9][9]);
    printf("\n");
}
...
Но я не понимаю, что значит отобразить симметрично (картинка нисколько не поясняет сути задания).
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
15.03.2010, 08:11     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #5
[QUOTE=kirjushyk;599574]
C
1
2
3
4
5
6
7
8
9
10
...
#include <stdlib.h>
...
int i;
int j;
int matrix[9][9];
for (i = 0; i < 9; i++)
    for (j = 0; j < 9; j++)
        matrix[9][9] = rand();
...

может быть matrix[i][j] = rand()?
Chajnik
1 / 1 / 0
Регистрация: 05.03.2010
Сообщений: 8
15.03.2010, 08:27     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #6
#include <stdlib.h>
...
int i;
int j;
int matrix[9][9];
for (i = 0; i < 9; i++)
for (j = 0; j < 9; j++)
matrix[9][9] = rand();
...
Sergey_O прав:

Цитата Сообщение от Sergey_O Посмотреть сообщение
может быть matrix[i][j] = rand()?
К стати можешь сразу вывести в том же цикле!
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdlib.h>
...
int i;
int j;
int matrix[9][9];
for (i = 0; i < 9; i++)
{    for (j = 0; j < 9; j++)
     {   matrix[i][j] = rand()%40;
          printf("%d\t",matrix[i][j]);
      }
      printf("\n");
}
%40 означает что рандомы будут от 0 до39 если требуется
К стати идею с табулятором не проверяла, я использую форматированный выводrintf("%5d",matrix[i][j]);
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
15.03.2010, 08:28     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #7
Цитата Сообщение от kirjushyk Посмотреть сообщение
Но я не понимаю, что значит отобразить симметрично (картинка нисколько не поясняет сути задания).
Отобразить симметрично - это значит транспонировать ее.

Программа на C++

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
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
 
int main()
{
  srand(time(NULL));
  const int strok=9; //количество строк
  const int stolb=9; //количество столбцов
  int a[strok][stolb]={0};
  //заполняем и выыводим массив}
  cout << "Ishodnaja matrix:" << endl;
  for(int i=0; i<strok;i++)
  {
    for(int j=0; j<stolb;j++)
    {
      a[i][j]=1+rand()%9;
      cout << setw(2) << a[i][j]<< ' ';
    }
    cout << endl;
  }
  //транспонируем матрицу
  cout << "Trnsponirovannaja matrix:" << endl;
  for(int i=0; i<stolb; i++)
  {
    for(int j=0;j<strok; j++)
    {
      cout << setw(2) << a[j][i] << ' ';
    }
    cout << endl;
  }
  return 0;
}
Chajnik
1 / 1 / 0
Регистрация: 05.03.2010
Сообщений: 8
15.03.2010, 08:36     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #8
Чето я не то написала О_о
Вобщем код писать не буду но идея такова:если i<=j заполняешь else matrix[i][j]=matrix[j][i]
Вобщем как-то так
kirjushyk
60 / 22 / 2
Регистрация: 13.03.2010
Сообщений: 65
15.03.2010, 18:44     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #9
Да, действительно, я по ошибке вместо i и j указал 9 =(
BumbleBee
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 10
17.03.2010, 07:49  [ТС]     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #10
Цитата Сообщение от UKOL Посмотреть сообщение
Отобразить симметрично - это значит транспонировать ее.

Программа на C++

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
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
 
int main()
{
  srand(time(NULL));
  const int strok=9; //количество строк
  const int stolb=9; //количество столбцов
  int a[strok][stolb]={0};
  //заполняем и выыводим массив}
  cout << "Ishodnaja matrix:" << endl;
  for(int i=0; i<strok;i++)
  {
    for(int j=0; j<stolb;j++)
    {
      a[i][j]=1+rand()%9;
      cout << setw(2) << a[i][j]<< ' ';
    }
    cout << endl;
  }
  //транспонируем матрицу
  cout << "Trnsponirovannaja matrix:" << endl;
  for(int i=0; i<stolb; i++)
  {
    for(int j=0;j<strok; j++)
    {
      cout << setw(2) << a[j][i] << ' ';
    }
    cout << endl;
  }
  return 0;
}
а можеш на С написать транспортирование матрицы??????
плз оч надо !!!!!!!!!!!!!!
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
17.03.2010, 13:29     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #11
Чет я с Си не очень дружу... Может типа того, но не уверен, знающие люди поправьте!

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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <time.h>
using namespace std;
 
int main()
{
  srand(time(NULL));
  const int strok=9; //количество строк
  const int stolb=9; //количество столбцов
  int a[strok][stolb]={0};
  //заполняем и выыводим массив}
   printf("Ishodnaja matrix:\n\n");
  for(int i=0; i<strok;i++)
  {
    for(int j=0; j<stolb;j++)
        {
      a[i][j]=1+rand()%9;
      printf("%d\t",a[i][j]);
        }
   printf("\n");
  }
  //транспонируем матрицу
  printf("\nTrnsponirovannaja matrix:\n\n");
  for(int i=0; i<stolb; i++)
  {
    for(int j=0;j<strok; j++)
        {
      printf("%d\t",a[j][i]);
        }
    printf("\n");
  }
  return 0;
}
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.03.2010, 13:38     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #12
Транспонирование:
C
1
2
3
4
5
6
7
8
int i = 0, j = 0, t = 0;
for(i = 0; i < size; ++i)
    for(j = 0; j < size; ++j)
    {
        t = matr[i][j];
        matr[i][j] = matr[j][i];
        matr[j][i] = t;
    }
Добавлено через 1 минуту
size = 9 для этого случая
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.03.2010, 15:06     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #13
Цитата Сообщение от Chajnik Посмотреть сообщение
К стати можешь сразу вывести в том же цикле!
Не надо мешать в кашу инициализацию данных и их вывод.

UKOL, в Си нет констант (за исключение компиляторов, поддерживающих стандарт C99).
Используй макросы:
C
1
#define SIZE 9
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
17.03.2010, 15:44     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #14
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
UKOL, в Си нет констант (за исключение компиляторов, поддерживающих стандарт C99).
Используй макросы:
Может сам все таки исправишь, а то я вообще с Си не знаком... я только предположил программу, на С++ запросто а вот за Си пока еще не брался.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2010, 15:48     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Еще ссылки по теме:
C++ Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
C++ Заполнить числами матрицу слева от главной диагонали и справа побочной
C++ Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поме
C++ Отразить матрицу симметрично относительно побочной диагонали

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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.03.2010, 15:48     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали #15
Цитата Сообщение от UKOL Посмотреть сообщение
Может сам все таки исправишь, а то я вообще с Си не знаком... я только предположил программу, на С++ запросто а вот за Си пока еще не брался.
Ну как то так:
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define strok 9
#define stolb 9
 
int main()
{
  int a[strok][stolb];
  int i, j;
 
  srand(time(NULL));
 
  //заполняем и выыводим массив}
   printf("Ishodnaja matrix:\n\n");
  for(i=0; i<strok;i++)
  {
    for(j=0; j<stolb;j++)
        {
      a[i][j]=1+rand()%9;
      printf("%d\t",a[i][j]);
        }
   printf("\n");
  }
  //транспонируем матрицу
  printf("\nTrnsponirovannaja matrix:\n\n");
  for(i=0; i<stolb; i++)
  {
    for(j=0;j<strok; j++)
        {
      printf("%d\t",a[j][i]);
        }
    printf("\n");
  }
  return 0;
}
Yandex
Объявления
17.03.2010, 15:48     Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Ответ Создать тему
Опции темы

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