Puedo aprender c# y tengo un problema con mi función.
Se debe multiplicar los elementos de la ficha matriz por mnoznik y devolver el resultado de la ficha, yo estaba tratando de muchas maneras, pero aún no tienen idea de cómo resolverlo.

    static int mnozenie(int[] tab, int mnoznik)
    {
        int[] wyj;
        wyj = new int[tab.Length];
        if (mnoznik != 0)
        {
            for (int i = 0; i < tab.Length; i++)
                wyj[i] = tab[i] * mnoznik;
            return wyj[];
        }
        else
            return 0;
    }
  • Tiene su tipo de retorno como int[][] y volver null en otra parte.
InformationsquelleAutor woochuck | 2015-03-30

4 Comentarios

  1. 3

    intentar

    static int[] mnozenie(int[] tab, int mnoznik)
    {
        int[] wyj = new int[tab.Length];
        if (mnoznik != 0)
        {
            for (int i = 0; i < tab.Length; i++)
                wyj[i] = tab[i] * mnoznik;
        }
        return wyj;
    
    }
    • El OP quiere que el valor 0 si la entrada mnoznik es 0. En mi humilde opinión, eso significa que tendría más sentido para siempre return wyj; y acaba de saltar la multiplicación de bucle si mnoznik es 0.
    • a continuación, acabo de volver de vacío de la matriz …
    • regresa el Sistema.Int32[] …
  2. 0

    Usted está tratando de devolver un array y un entero, que no se puede hacer. Usted puede envolver todo en una Tupla<,> y el retorno de ambos, o puede devolver null en el caso mnoznik es 0.

    Algo como:

    static Tuple<bool,int[]> mnozenie(int[] tab, int mnoznik)
    {
        return (mnoznik == 0)
               ? new Tuple<bool,int[]>(false, new [] { 0 })
               : new Tuple<bool,int[]>(true, tab.Select(i => i*mnoznik).ToArray());
    }

    o

    static int mnozenie(int[] tab, int mnoznik)
    {
        return (mnoznik == 0)
               ? null
               : tab.Select(i => i*mnoznik).ToArray();
    }
    • en el segundo ejemplo tiene el método int tipo de retorno y u devuelve int matriz
    • Que fue un error de tipeo. Yo debería haber escrito int[]. Otra cosa es que en lugar de null, usted puede devolver un bien definida la matriz, como yo lo hice en el primer ejemplo: el nuevo [] { 0 };
  3. 0
    static int[] mnozenie(int[] tab, int mnoznik)
    {
        if (tab.Length > 0)
        {
            for (int i = 0; i < tab.Length; i++)
            {
                tab[i] *= mnoznik;
            }
            return tab;
        }
        return null;
    }

    o, alternativamente, en lugar de devolver null acabo de volver de tab de la espalda, el if bloque sólo protege de intentar acceder a un valor nulo de la colección, o simplemente manejar la excepción en cualquier forma que usted elija.

    • o, alternativamente, en lugar de devolver null acabo de volver de la ficha de nuevo, si el bloque sólo protege de intentar acceder a un valor nulo de la colección, o simplemente manejar la excepción en cualquier forma que usted elija.
    • donde u guardamos el resultado de la multiplicación ?
    • en la ficha, marque el bloque foreach su derecho allí.
    • sí u asignar el resultado a campo local elemento que nunca se declaró … en el método original es el resultado de la multiplicación almacenados en el array
    • Lo siento, pero eso es simplemente no es exacto. Si el original de la int[] ficha es nunca declaró entonces que se maneja con el bloque if, si es declarado, a continuación, guardar el resultado de la multiplicación para cada elemento en el elemento y pasar el new int[] ficha de nuevo. De hecho, declarando otro int[] o más variables sería un completo desperdicio de recursos ya que son innecesarios.
    • además, usted es bienvenido y incluso se anima a probar el código anterior para ver si funciona.
    • en ese caso, todo multiplicación se almacenan en la matriz que debe ser la salida de método….
    • Cambié el foreach bloque por bloque, y sí todos multiplicación se almacena de regreso en la matriz de entrada, y es de hecho la salida
    • Aquí es mi caso de prueba

  4. 0

    este código puede ayudar
    pruébalo

       static int[] m(int[] a , int low , int big) 
          {
            int[] re = new int[2];
            int min, max, mid ;
            if (low == big)
            {
                min = max = a[low];
                re[0] = min;
                re[1] = max;
                return (re);
            }
          }

Dejar respuesta

Please enter your comment!
Please enter your name here