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

Заполнить матрицу случайными числами - C++

Восстановить пароль Регистрация
 
Михаил911
Сообщений: n/a
30.03.2010, 22:53     Заполнить матрицу случайными числами #1
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2010, 22:53     Заполнить матрицу случайными числами
Посмотрите здесь:

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали C++
Заполнить матрицу случайными числами C++
C++ Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
C++ Заполнить матрицу случайными числами
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
30.03.2010, 22:57     Заполнить матрицу случайными числами #2
вот те матрица, заполнишь рандомом сам.
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
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main() 
{
        
        int ** mas, i, j, m, temp;
        printf("Enter rule of matrix ") ;
        scanf ("%d", &m) ;
        mas=(int **)malloc(m*sizeof(int *)) ; //mas=new int*[n];
        for(i=0; i<m; i++)
                mas[i]=(int *)malloc(m*sizeof(int)) ; //mas[i]=new int[m];
        printf("Enter elements of array: ");
        for(i=0; i<m; i++)
                for(j=0; j<m; j++)
                {
                        printf("Element [%d][%d]= ",i,j);
                        scanf("%d", &mas[i][j]);
                }
        printf("First array:\n");
        for(i=0; i<m; i++)
        {
                for(j=0; j<m; j++)
                        printf("%d",mas[i][j]);
                printf("\n");
                
        }
        for(i=0; i<m*2; i++)
                for(j=i; j<m-i-1; j++)
                {
                        temp=mas[i][j];
                        mas[i][j]=mas[m-j-1][i];
                        mas[m-j-1][i]=mas[m-i-1][m-j-1];
                        mas[m-i-1][m-j-1]=mas[j][m-i-1];
                        mas[j][m-i-1]=temp;
                }
                
        printf("\nRecived array:\n");
        for(i=0; i<m; i++)
        {
                for(j=0; j<m; j++)
                        printf("%d",mas[i][j]);
                printf("\n");
        } 
  return 0;
}
ggmann
 Аватар для ggmann
20 / 20 / 1
Регистрация: 06.10.2008
Сообщений: 173
30.03.2010, 23:07     Заполнить матрицу случайными числами #3
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <conio.h>
//#include <time.h>
 
int* fillmatrix ( int *mass, int x, int y );
int* rotate_mat ( int *mass, int x, int y );
 
int main()
{
    int Width;
    int Height;
 
    std::cout << "Enter matrix Width:";   std::cin >> Width;    //зчитуємо ширину та
    std::cout << "Enter matrix Height:";  std::cin >> Height;   //висоту матриці
    int *mass1 = new int[Width*Height];
  
    int tmp;
    fillmatrix(mass1, Width, Height); //заповнюємо матрицю випадковиим числами
 
//////////////////////Rotate Matrix ////////////////////////
 
    std::cout << "=============================================";
   std::cout << "\nMatrix Befor rotate:" << std::endl;
     for (int i=0; i<Height;i++){
         std::cout << std::endl;
        for (int j=0; j<Width;j++)
            std::cout << "\t" << mass1[i*Width+j];
        std::cout << "\n";
    }
        std::cout << "=============================================";
 
////////////////GET Result of rotation///////////////////
    mass1 = rotate_mat (mass1, Width, Height);
    tmp = Height;
    Height = Width;
    Width = tmp;
////////////////////////////////////////////////////////
 
    std::cout << "Matrix After rotate:" << std::endl;
      for (int i=0; i<Height;i++){
          std::cout << std::endl;
        for (int j=0; j<Width;j++)
            std::cout << "\t" << mass1[i*Width+j];
        std::cout << "\n";
    }
    std::cout << "=============================================";
 
///////////////////// END ROTATE //////////////////////
 
 
    delete []mass1;
    delete []mass2;
    getch();
    return 0;
}
 
// Fill matrix by random integer elements ------------
 
int* fillmatrix(int *mass, int x, int y)
{
    // srand(time(NULL));
    for(int i=0;i<y;i++)
        for(int j=0;j<x;j++)
           mass[i*x+j] = i*x+j/*rand()%9*/;
    return mass;
}
//-----------------------------------------------------
 
//--- Rotate matrix on 90 -----------------------------
 
int* rotate_mat(int *mass, int x, int y)
{
    int* result = new int[y*x];
    int temp;
    int ind1, ind2;
    for (int i=0; i<y;i++)
    {
        for (int j=0; j<x;j++)
        {
            ind1 = i*x+j;
            ind2 = (x-j-1)*y+i;
            result[ind2] = mass[ind1];
        }
        std::cout << "\n";
    }
    return result;
}
вот еще как вариант, но только здесь 2мерный масив создан через одномерный.нашел старый код, мож переделать немного
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
31.03.2010, 00:07     Заполнить матрицу случайными числами #4
Для квадратной целочисленной матрицы
C++
1
2
3
        for (i ^= i; i < rowCount; ++i)
            for (j ^= j; j < columnCount; ++j)
                matr[i][j] = buf[j][rowCount - 1 - i];
Yandex
Объявления
31.03.2010, 00:07     Заполнить матрицу случайными числами
Ответ Создать тему
Опции темы

Текущее время: 18:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru