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

Ввести размерность матрицы с клавиатуры - C++

Восстановить пароль Регистрация
 
Vladio
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 6
13.12.2013, 01:53     Ввести размерность матрицы с клавиатуры #1
Привет,мир!
Как сделать так, чтобы самому задавать размерность матрицы.
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>
#include <conio.h>
using namespace std;
const int n=3,m=4;
int main()
{
    int A[n][m];
    int k=0,sum=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout<<"Vvedite ["<<i<<"]["<<j<<"] element: ";
            cin>>A[i][j];
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout<<A[i][j]<<" ";
        }
        cout<<endl;
    }
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            sum=sum+A[j][i];
        }
        for(int a=0;a<n;a++)
        {
            if(A[a][i]>sum-A[a][i]) k++;
        }
        sum=0;
    }
    cout<<"Otvet: "<<k<<endl;
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZeR_0
116 / 108 / 37
Регистрация: 30.01.2013
Сообщений: 297
13.12.2013, 01:55     Ввести размерность матрицы с клавиатуры #2
почитай про динамическое выделение памяти. тут на форму много статей. да и в гугле много
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
13.12.2013, 02:12     Ввести размерность матрицы с клавиатуры #3
Vladio, почитай про динамическое выделение памяти.

Добавлено через 22 секунды

Не по теме:

опоздал

StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
13.12.2013, 02:26     Ввести размерность матрицы с клавиатуры #4
Vladio, значения size1 и size2, а также тип массива можете задавать по своему вкусу.
C++
1
2
3
4
5
6
7
8
9
10
11
.....
    int size1 = 10;
    int size2 = 7;
    
    int ** array = new int * [ size1 ];
 
    for ( int i = 0; i < size; i++ )
    {
        array[ i ] = new int [ size2 ];
    }
.....
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
13.12.2013, 03:05     Ввести размерность матрицы с клавиатуры #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include<iostream>
#include<stdlib.h>//рандомизатора
#include<time.h>//для правильной работы рандомизатора
#include<Windows.h>//для русского
#include <iomanip>
 
using namespace std;//пространство имен
 
int main()//главная функция
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);//русский
 
    srand(time(NULL));//для правильной работы рандомизатора
    int n,m;
    cout <<"Введите количество строк"<<"\n";
    cin >> n;
    cout<<"Введите количество столбцов"<< "\n";
    cin >> m;
    // динамическое создание двумерного массива
    int **A = new int* [n]; // строк в массиве
    for (int i = 0; i < n; i++)
        A[i] = new int [m]; // столбцов
    // заполнение массива и вывод на экран
         for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
         {
            A[i][j]=rand()%100;//заполняем в интервале 100
             cout << setw(3) << A[i][j] << ' ';// выводим сформированный массив
         }
        cout<<"\n";
    }
         // Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[]A[i]; // Удаляем каждый элемент
    }
    delete [] A; // А потом массив
 
    return 0;
}
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
13.12.2013, 04:23     Ввести размерность матрицы с клавиатуры #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Vladio, перегрузка шаблонных функций, если часто требуется создавать массивы различных типов и размерностей:
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
#include <iostream>
#include <string>
 
template < typename returnType, typename inputType >
returnType * createArray( inputType column )
{
    returnType * arrayPtr = new returnType [ column ];
 
    return arrayPtr;
}
 
template < typename returnType, typename inputType >
returnType ** createArray( inputType row, inputType column )
{
    returnType ** arrayPtr = new returnType * [ row ];
 
    for ( int i = 0; i < row; i++ )
    {
        arrayPtr[ i ] = new returnType [ column ];
    }
 
    return arrayPtr;
}
 
int main()
{
    double * arrayOfDoubles = createArray < double > ( 8 );
 
    int * arrayOfIntegers = createArray < int > ( 10 );
 
    std::string ** arrayOfStrings = createArray < std::string > ( 10, 2 );
 
.....
 
    return 0;
}
Добавлено через 24 минуты
Лучше бы конечно возвращаемый тип специфицировать как returnType * const, дабы избежать возможной утечки памяти в будущем.
Yandex
Объявления
13.12.2013, 04:23     Ввести размерность матрицы с клавиатуры
Ответ Создать тему
Опции темы

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