Как найти длину двумерного массива с

If I declare this array…

string[,] a = {
                  {"0", "1", "2"},
                  {"0", "1", "2"},
                  {"0", "1", "2"},
                  {"0", "1", "2"},
              };

Then I can measure the length with

a.Length

which is 12. How do I measure the dimension of the arrays within? If I try…

a[0].Length

I get Wrong number of indices inside []; expected 2. What gives?

#include <bits/stdc++.h>
using namespace std;


int main(int argc, char const *argv[])
{
    int arr[6][5] = {
        {1,2,3,4,5},
        {1,2,3,4,5},
        {1,2,3,4,5},
        {1,2,3,4,5},
        {1,2,3,4,5},
        {1,2,3,4,5}
    };
    int rows = sizeof(arr)/sizeof(arr[0]);
    int cols = sizeof(arr[0])/sizeof(arr[0][0]);
    cout<<rows<<" "<<cols<<endl;
    return 0;
}

Output: 6 5

for 2-d array use this code :

var array = new int[,]
{
    {1,2,3,4,5,6,7,8,9,10 },
    {11,12,13,14,15,16,17,18,19,20 }
};
var row = array.GetLength(0);
var col = array.GetLength(1);

output of code is :

  • row = 2
  • col = 10

for n-d array syntax is like above code:

var d1 = array.GetLength(0);   // size of 1st dimension
var d2 = array.GetLength(1);   // size of 2nd dimension
var d3 = array.GetLength(2);   // size of 3rd dimension
.
.
.
var dn = array.GetLength(n-1);   // size of n dimension

Best Regards!

0909-090-

1 / 1 / 2

Регистрация: 20.03.2019

Сообщений: 256

1

как определить длину двумерного массива?

14.06.2021, 13:30. Показов 6866. Ответов 10

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
#include <string>
int main(int argc, char** argv) {
    string slows[][2]={{"one","two"},{"three","four"},{"n","n+1"}};
    int t=slows.length();
    cout<<t<<endl;
    return 0;
}

Например, есть двумерный массив. Как мне найти количество элентов в массиве slows? На данный момент выдаёт ошибку.10 16 C:UsersÂàíÿDesktopc++ yÏÐÀÊÒÈÊÀñàìîå ÷àñòîå ñëîâîmain.cpp [Error] request for member ‘length’ in ‘slows’, which is of non-class type ‘std::string [3][2] {aka std::basic_string<char> [3][2]}’ Что мне исправить?



0



1 / 1 / 2

Регистрация: 20.03.2019

Сообщений: 256

14.06.2021, 13:56

 [ТС]

3

Спасибо



0



Just Do It!

3559 / 1956 / 626

Регистрация: 23.09.2014

Сообщений: 6,311

Записей в блоге: 2

14.06.2021, 15:11

4

Цитата
Сообщение от DrOffset
Посмотреть сообщение

sizeof(slows)/sizeof(slows[0]);

не то.
ибо длина тут это:

Цитата
Сообщение от 0909-090-
Посмотреть сообщение

Как мне найти количество элентов в массиве slows

а кол-во их тут 6,
но sizeof(slows)/sizeof(slows[0]) == 3 is true



0



248 / 70 / 9

Регистрация: 22.07.2018

Сообщений: 321

14.06.2021, 15:46

5

Цитата
Сообщение от XLAT
Посмотреть сообщение

Цитата
Сообщение от 0909-090-
Посмотреть сообщение

Как мне найти количество элентов в массиве slows

а кол-во их тут 6

Кол-во их тут 3.



0



XLAT

Just Do It!

3559 / 1956 / 626

Регистрация: 23.09.2014

Сообщений: 6,311

Записей в блоге: 2

14.06.2021, 15:58

6

Цитата
Сообщение от argcargv
Посмотреть сообщение

Кол-во их тут 3.

вы в этом уверены?

Кликните здесь для просмотра всего текста

Название: 1.jpg
Просмотров: 230

Размер: 12.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
#include <iostream>
using namespace std;
 
template <typename... TT>
void Banner(TT&&... vals){   ((std::cout << vals), ...);}
 
#include <string>
int main(int argc, char** argv)
{   setlocale(0, "");
    string slows[][2]={{"one","two"},{"three","four"},{"n","n+1"}};
    int t=sizeof(slows)/sizeof(slows[0]);
    cout<<t<<"nn";
 
    Banner(
    "///---------------------------|n"
    "/// ПОСЧИТАЙТЕ ИХ ПАЛЬЧИКОМ.  |n"
    "///---------------------------:n");
    for(size_t i = 0; i < 3; ++i)
    {   for(auto s : slows[i])
        {   std::cout << s << "t";
        }   std::cout      << "n";
    }
 
    return 0;
}



0



XLAT

Just Do It!

3559 / 1956 / 626

Регистрация: 23.09.2014

Сообщений: 6,311

Записей в блоге: 2

14.06.2021, 16:01

7

Цитата
Сообщение от DrOffset
Посмотреть сообщение

C++
1
sizeof(slows)/sizeof(slows[0]);
C++
1
sizeof slows / sizeof slows[0] * sizeof slows[0] / sizeof * slows[0];



0



248 / 70 / 9

Регистрация: 22.07.2018

Сообщений: 321

14.06.2021, 16:02

8

XLAT, сходи почитай что такое элемент массива.



0



Just Do It!

3559 / 1956 / 626

Регистрация: 23.09.2014

Сообщений: 6,311

Записей в блоге: 2

14.06.2021, 16:11

9

Цитата
Сообщение от argcargv
Посмотреть сообщение

сходи почитай

неа,
и тебе не советую, ибо не всему нужно верить из того, что на заборе написано

Цитата
Сообщение от argcargv
Посмотреть сообщение

элемент массива

нету здесь массива!
а есть тут у автора трёхмерный массив чаров с одной динамической размерностью.



0



4023 / 3280 / 920

Регистрация: 25.03.2012

Сообщений: 12,263

Записей в блоге: 1

15.06.2021, 00:56

10

XLAT, мне кажется, автору нужен был именно размер 3, а не 3*2
про массив чаров вообще бред. Строки СТЛ это не массив чаров.



0



Just Do It!

3559 / 1956 / 626

Регистрация: 23.09.2014

Сообщений: 6,311

Записей в блоге: 2

15.06.2021, 01:16

11

Цитата
Сообщение от Kuzia domovenok
Посмотреть сообщение

мне кажется

а я уверен, нужно лечь поспать и всё наладиться …

а то снова …трололо…



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

15.06.2021, 01:16

Помогаю со студенческими работами здесь

Как сделать, чтобы строки двумерного динамического массива могли бы иметь различную длину?
Здравствуйте,есть две задачи,которые нужно выполнить используя двумерный массив.одна задача почти…

Как определить длину массива
Добрый день! Вопрос от новичка.
Хочу определить длину массива

local Table = {}

for i = 1,…

Узнать длину строки двумерного массива?
Например дан массив n*m:

int arr = {{1,2,3},
{4,5,6},
Нужно вытащить размер…

Написать программу для обработки двумерного массива размерностью 5*5. Для каждой строки двумерного массива Q определить
Написать программу для обработки двумерного массива размерностью 5*5. Для каждой строки двумерного…

Написать программу для обработки двумерного массива размерностью 5*5. Для каждой строки двумерного массива Q определить
Написать программу для обработки двумерного массива размерностью 5*5. Для каждой строки двумерного…

Хорошо ли узнавать длину строки двумерного массива таким способом?
T arr=new T
T.length(); //количество строк в массиве

Но можно ли делать ТАК? Т.е. насколько это…

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

Или воспользуйтесь поиском по форуму:

11

В этом посте мы обсудим, как найти длину массива в C#.

1. Использование Array.Length Имущество

Стандартным решением для нахождения длины массива является использование Array.Length имущество. Он возвращает общее количество элементов, содержащихся в массиве. Если массив пуст, возвращается ноль. Следующий пример демонстрирует это:

using System;

public class Example

{

    public static void Main()

    {

        int[] array = { 1, 2, 3, 4, 5 };

        int length = array.Length;

        Console.WriteLine(«Length is « + length);

    }

}

Скачать  Выполнить код

результат:

Length is 5

 
Для многомерных массивов Array.Length возвращает общее количество элементов во всех измерениях. Другими словами, он возвращает сумму общего количества элементов в каждом измерении многомерного массива.

using System;

public class Example

{

    public static void Main()

    {

        int[,] array = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };

        int length = array.Length;

        Console.WriteLine(«Length is « + length);

    }

}

Скачать  Выполнить код

результат:

Length is 6

 
В C#, зубчатый массив могут быть разных размеров и размеров. Для зубчатого массива Length свойство будет указывать количество измерений в массиве. Например,

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

using System;

public class Example

{

    public static void Main()

    {

        int[][] array = new int[3][];

        array[0] = new int[] {1, 2};

        array[1] = new int[] {3, 4, 5};

        array[2] = new int[] {6, 7, 8, 9};

        Console.WriteLine(«array.Length is « + array.Length);

        Console.WriteLine(«array[0].Length is « + array[0].Length);

        Console.WriteLine(«array[1].Length is « + array[1].Length);

        Console.WriteLine(«array[2].Length is « + array[2].Length);

    }

}

Скачать  Выполнить код

результат:

array.Length is 3
array[0].Length is 2
array[1].Length is 3
array[2].Length is 4

2. Использование Array.GetLength(Int32) Метод

В качестве альтернативы вы можете использовать Array.GetLength() метод для получения длины одномерного массива. Идея состоит в том, чтобы передать нулевое измерение GetLength метод для определения общего количества элементов в первом измерении массива.

using System;

public class Example

{

    public static void Main()

    {

        int[] array = { 1, 2, 3, 4, 5 };

        int length = array.GetLength(0);

        Console.WriteLine(«Length is « + length);

    }

}

Скачать  Выполнить код

результат:

Length is 5

 
Если массив многомерный, то Array.GetLength() Метод возвращает общее количество элементов в указанном измерении многомерного массива.

using System;

public class Example

{

    public static void Main()

    {

        int[,] array = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };

        int length = array.GetLength(0);

        Console.WriteLine(«Length is « + length);

    }

}

Скачать  Выполнить код

результат:

Length is 2

3. Использование Array.Rank Имущество

Если вам нужно количество измерений массива вместо количества элементов, используйте Array.Rank Имущество. Он возвращает 1 для одномерного массива и зубчатого массива (массив массивов), 2 для двумерного массива и так далее.

using System;

public class Example

{

    public static void Main()

    {

        int[,] array = new int[3, 5];

        int rank = array.Rank;

        Console.WriteLine(«Rank is « + rank);

    }

}

Скачать  Выполнить код

результат:

Rank is 2

4. Использование foreach

Другой возможный, но менее рекомендуемый вариант — вручную подсчитать количество элементов в массиве. В следующем примере показано, как использовать цикл foreach и переменную счетчика для достижения того же.

using System;

public class Example

{

    public static void Main()

    {

        int[] array = { 1, 2, 3, 4, 5 };

        int length = 0;

        foreach (var item in array) {

            length++;

        }

        Console.WriteLine(«Length is « + length);

    }

}

Скачать  Выполнить код

результат:

Length is 5

Вот и все, что касается нахождения длины массива в C#.

Понравилась статья? Поделить с друзьями:
  • Как найти одинаковые файлы на флешке
  • Как найти предприятие в госреестре
  • Пересолила красную рыбу как можно исправить
  • Как найти тыкву в wacky wizards
  • Как исправить сутулость во взрослом возрасте