¿Puedo hacer que un usuario de matriz ingrese su tamaño?

Depende completamente de su idioma y de si está preparado para escribir código adicional:

En C: si solo usa una matriz básica, entonces no; su tamaño se fija en tiempo de compilación, aunque podría escribir código para darle una matriz de tiempo de ejecución como una funcionalidad en la que el tamaño se puede establecer en tiempo de ejecución (o incluso cambiar).

En c ++ nuevamente, una matriz básica se repara en el momento de la compilación, pero la biblioteca de plantillas estándar le proporciona un Vector que es una matriz de estructura de tamaño considerable. También puede declarar matrices dinámicas utilizando el operador ‘nuevo’.

En Java, puede tener matrices dinámicas (es decir, matrices que pueden dimensionarse en función de valores enteros en variables).

En Python, por defecto, una lista es dinámica (es decir, se dimensiona según sea necesario dependiendo de la cantidad de datos que necesita agregar a la lista). En Python no necesita decirle al programa cuántos datos necesita, solo agregue sus datos a la lista. Python también tiene un bytearray (que es de tamaño fijo), pero que está destinado principalmente a datos binarios, como datos Unicode sin procesar, o imagina, por ejemplo.

Cada idioma tendrá diferentes capacidades, no hay una sola manera de hacer las cosas, tendrá que mirar el idioma que piensa usar; pero no elija el idioma solo por una característica de lenguaje pequeño (como matrices / listas dinámicas). Elija el idioma como herramienta para resolver su problema informático más amplio.

En primer lugar, gracias por el A2A.

Como los otros ya han dicho, esta pregunta depende completamente del idioma con el que está trabajando, y como no sabemos eso, es difícil dar una buena respuesta a su pregunta.

  • En C, no es posible cambiar o asignar dinámicamente una matriz, ya que la longitud de la matriz debe ser una expresión constante .
  • En C ++, no es posible asignar dinámicamente una matriz (sin tener en cuenta las clases STL como std::vector ) por el mismo motivo que el anterior. Podrías intentar, por ejemplo

int cuenta = 0;
scanf_s (“% d”, y cuenta);

int * array = new int [cuenta];

matriz [0] = 42;
matriz [1] = 0;
matriz [2] = 20;

  • pero creo que esto no es lo que quieres, y definitivamente deberías buscar en std::vector [1]
  • C # tampoco proporciona matrices dinámicas y debe buscar en la clase Systems.Collections.Generic.List [2].

Espero poder ayudar

Notas al pie

[1] std :: vector – cppreference.com

[2] Lista (T) -Klasse (System.Collections.Generic)

Sí, te recomiendo que uses vectores de la biblioteca de vectores . Son dinámicos y tienen mucha flexibilidad que permite cambiar su tamaño máximo durante el tiempo de ejecución. ¡Intenta echar un vistazo!

Referencia: vector – Referencia de C ++

declare una variable estática y haga que el usuario la ingrese y la use como tamaño de matriz en c ++;

static int x;

cin >> x;

int arr [x];

Si, es muy facil.

int a [n];

lea el valor de n durante el tiempo de ejecución.

Aquí hay un pequeño ejemplo usando Ada:

——————————————————————
– Encuentra el número más grande en una matriz –
——————————————————————
con Ada.Text_IO; use Ada.Text_IO;
con Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedimiento find_largest es
type Nums es array (rango positivo <>) de Integer;
N: positivo;
empezar
Put (“Ingrese el número de elementos en la matriz:”);
Obtener (N);
declarar
Valores: Nums (1..N);
Mayor: entero;
empezar
Put_Line (“Enter” & Positive’Image (N) & “values:”);
para I en el bucle de rango de valores
Obtener (valores (I));
bucle final
Mayor: = valores (valores primero);
para I en Values’First + 1..Values’Last loop
if Valores (I)> Mayor que
Mayor: = valores (I);
terminara si;
bucle final
Put_Line (“El valor más grande en la matriz es” &
Integer’Image (la más grande));
fin;
end find_largest;

Tenga en cuenta que se le solicita al usuario que ingrese el número de elementos en la matriz. Después de esto se declara un bloque interno. En la sección “declarar” del bloque interno, se crea una matriz con el número de elementos especificados por el usuario.

El código dentro del bloque interno obtiene los valores para la matriz del usuario y muestra el valor más grande en la matriz.

Si te entiendo correctamente, estás preguntando sobre cómo hacer una matriz después de que un usuario ingrese su tamaño. La respuesta es sí.

En algunos idiomas, debe declarar un puntero de matriz, asignar memoria en función del tamaño que ingrese el usuario y luego usar el puntero para apuntar a este fragmento de memoria.

O algunos lenguajes como C # facilitan este tipo de cosas directamente, por lo que puede solicitar primero el tamaño y luego hacer la matriz usando el tamaño.