es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error en tiempo de ejecución: Determinante de una matriz usando c++

Estoy intentando escribir un programa que pueda calcular el determinante de una matriz 2×2 ingresada por el usuario.
Mi código es el siguiente –

“`c++
//Programa para calcular el determinante de matrices

#include
#include<conio.h>
using namespace std;

int main()
{
int arr[1][1];
int i,j,p,q,v,b,c,k,determinante;

for(i=1;i<=2;i++)
{
    for(j=1;j<=2;j++)
    {
        p=i;
        q=j;    
        cout<<"Ingrese el elemento: ";
        cin>>arr[p][q];
        cout<<"Estás en "<<><><endl; }="" }="" v="arr[1][1];" b="arr[1][2];" c="arr[2][1];" k="arr[2][2];" cout<<"los="" elementos="" ingresados="" son="<<v<<"></endl;><b<<"></b<<"><c<<"></c<<"><><endl;
determinante= ((v*k)-(c*b)); 
cout<<"el determinante de la matriz dada es = "<<determinante;   
getch();

}


y este es el error que estoy enfrentando con este programa -

ingrese el elemento: 4
estás en 11
ingrese el elemento: 9
estás en 12
ingrese el elemento: 8
estás en 21
ingrese el elemento: 7
estás en 22
los elementos ingresados son = 4 8 8 7
el determinante de la matriz dada es = -36


en la posición arr[1][2] he ingresado '9' como elemento, pero en su lugar se está imprimiendo el elemento asignado a la posición arr[2][1]. entonces, si alguien puede ayudarme a resolver este error, estaré muy agradecido contigo. determinante="((v*k)-(c*b));" cout<<"el="" determinante="" de="" la="" matriz="" dada="" es=""></endl; determinante= ((v*k)-(c*b)); cout<<"el determinante de la matriz dada es = "<<determinante; getch(); }

y este es el error que estoy enfrentando con este programa –

ingrese el elemento: 4
estás en 11
ingrese el elemento: 9
estás en 12
ingrese el elemento: 8
estás en 21
ingrese el elemento: 7
estás en 22
los elementos ingresados son = 4 8  8 7
el determinante de la matriz dada es = -36

en la posición arr[1][2] he ingresado ‘9’ como elemento, pero en su lugar se está imprimiendo el elemento asignado a la posición arr[2][1].
entonces, si alguien puede ayudarme a resolver este error, estaré muy agradecido contigo.></conio.h>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    El problema con el programa es que está utilizando indexación basada en 1 para el arreglo arr, mientras que la indexación correcta debería ser basada en 0.

    En C++, los índices de los arreglos comienzan desde 0, por lo que si declaramos un arreglo con int arr[2][2], entonces los índices válidos serían arr[0][0], arr[0][1], arr[1][0] y arr[1][1]. Sin embargo, en el programa dado, el bucle para tomar la entrada del usuario comienza desde i=1 y j=1, lo que significa que el primer elemento ingresado por el usuario se asigna a arr[1][1], en lugar de arr[0][0].

    Para solucionar este problema, simplemente podemos cambiar el bucle para que comience desde i=0 y j=0. El programa corregido se muestra a continuación –

    //Programa para calcular el determinante de matrices
    
    #include<iostream>
    #include<conio.h>
    using namespace std;
    
    int main()
    {
        int arr[2][2];
        int i,j,determinante;
    
        for(i=0;i<2;i++)
        {
            for(j=0;j<2;j++)
            {
                cout<<"Ingrese el elemento en la posición ["<<><j<<"] :-="" ";="" cin="">>arr[i][j];
            }
        }
    
        //calcular el determinante
        determinante = ((arr[0][0]*arr[1][1]) - (arr[0][1]*arr[1][0]));
    
        cout<<"El determinante de la matriz dada es = "<<><endl;
        getch();
        return 0;
    }
    

    en este programa corregido, el arreglo arr se declara con 2 filas y 2 columnas, y el bucle comienza desde índices basados en 0. el determinante se calcula según la fórmula para matrices de 2×2, y se imprime en la consola.

    ¡espero que esto ayude! getch();=”” return=”” 0;=”” }=”” ="" en="" este="" programa="" corregido,="" el="" arreglo="" `arr`="" se="" declara="" con="" 2="" filas="" y="" 2="" columnas,="" y="" el="" bucle="" comienza="" desde="" índices="" basados="" en="" 0.="" el="" determinante="" se="" calcula="" según="" la="" fórmula="" para="" matrices="" de="" 2x2,="" y="" se="" imprime="" en="" la="" consola.="" ¡espero="" que="" esto=""></endl;
    getch();
    return 0;
    }

    en este programa corregido, el arreglo arr se declara con 2 filas y 2 columnas, y el bucle comienza desde índices basados en 0. el determinante se calcula según la fórmula para matrices de 2×2, y se imprime en la consola.

    ¡espero que esto ayude!></j<<“]></conio.h>

Comments are closed.