• Viernes 19 de Abril de 2024, 10:24

Autor Tema:  C# Marca ceros,  (Leído 1307 veces)

Humberto12345

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
C# Marca ceros,
« en: Lunes 19 de Julio de 2010, 01:07 »
0
:argh:  :hitcomp:
Me Urge mucho porfavor, ya no se que hacer
Hola, alguien me puede ayudar con este array? esque esta bien pero no se por que me empieza a imprimir ceros, tengo que pedir elementos de un array y luego ordenar de menor a mayor o alrvez e imprimirlo
Gracias, y porfavor lo necesito para hoy pero no me sale, les agradeceria muchisimo, dare REP xD

Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication2
  7. {
  8.     class PorfinArray
  9.     {
  10.  
  11.         public static void pideTamaño()
  12.         {
  13.             int element;
  14.             int array;
  15.             int index;
  16.             Console.WriteLine("Dame el tamaño del array");
  17.             array = int.Parse(Console.ReadLine());
  18.             int[] x;
  19.             x = new int[array];
  20.             Console.WriteLine("Dame Elementos del array");
  21.             for (index = 1; index <= array; index++)
  22.                 element = int.Parse(Console.ReadLine());
  23.             string salida = "Valores de los elementos originalesn";
  24.             for (int i = 0; i < x.Length; i++)
  25.  
  26.                 salida += "   " + x[i];
  27.  
  28.             // ordenar elementos del arreglo  
  29.  
  30.             OrdenarBurbuja(x);
  31.  
  32.             salida += "nnValores de los elementos en orden descendenten";
  33.  
  34.             for (int i = 0; i < x.Length; i++)
  35.  
  36.                 salida += "   " + x[i];
  37.             Console.WriteLine(salida);
  38.             Console.ReadKey();
  39.  
  40.         }
  41.        
  42.         static public void OrdenarBurbuja(int[] b)
  43.         {
  44.  
  45.             for (int p = 1; p < b.Length; p++) // pasadas  
  46.  
  47.                 for (int i = 0; i < b.Length - 1; i++)
  48.  
  49.                     if (b[i] > b[i + 1])      // comparar  
  50.  
  51.                         intercambio(b, i);         // intercambiar  
  52.  
  53.         }
  54.  
  55.         // intercambio de dos elementos en un arreglo  
  56.  
  57.         static public void intercambio(int[] c, int primero)
  58.         {
  59.  
  60.             int temp;      // variable temporal para el intercambio  
  61.  
  62.             temp = c[primero];
  63.  
  64.             c[primero] = c[primero + 1];
  65.  
  66.             c[primero + 1] = temp;
  67.  
  68.         }
  69.  
  70.         static void ordena()
  71.         {
  72.             Console.WriteLine("Ordenado");
  73.         }
  74.         static void imprime()
  75.         {
  76.             Console.WriteLine("El array y elementos son:");
  77.         }
  78.         static void Main()
  79.         {
  80.             PorfinArray.pideTamaño();
  81.             PorfinArray.ordena();
  82.             PorfinArray.imprime();
  83.         }
  84.     }
  85. }
  86.  

Bueno pues muchas gracias, me urge mucho ya no se que hacer  :hitcomp:

gerloxxx

  • Miembro MUY activo
  • ***
  • Mensajes: 121
    • Ver Perfil
Re: C# Marca ceros,
« Respuesta #1 en: Lunes 19 de Julio de 2010, 15:52 »
0
hola, te comento que lo que puede estar pasando es que no almacenas los valores despues de leerlos, y puedes mejorar el for de la siguiente forma:

Código: C#
  1.  
  2.             Console.WriteLine("Dame Elementos del array");
  3.             for (index = 0; index < array; index++)
  4.             {
  5.                 element = int.Parse(Console.ReadLine());
  6.                 x[index] = element; //<--------
  7.             }
  8.  
  9.  

saludos

Newtek

  • Miembro activo
  • **
  • Mensajes: 81
  • Nacionalidad: cr
    • Ver Perfil
    • http://www.newtekwebhosting.com.com?id=000231
Re: C# Marca ceros,
« Respuesta #2 en: Lunes 19 de Julio de 2010, 16:16 »
0
Exacto... jajajaja estaba apunto de contestar y cuando estaba contestando y precione el "Vista Previa" me di cuenta que gerloxxx   ya habia contestado...

Y te cuento que gerloxxx   tiene razon... no estas metiendo los valores dentro del Array/.. tienes que incluirlos... puedes hacerlo como lo dijo gerloxxx   o puedes hacer algo como esto tambien..



Código: C#
  1.    for (index = 0; index < array; index++)
  2.                {                  
  3.                    x[index] = int.Parse(Console.ReadLine());
  4.                }
  5.  
  6.  

Te ahorras 4 bits de memoria y unas te codigo ;) tambien algo que  gerloxxx no menciono pero que tu tienes mal es que tu inicias el arreglo en uno... los arrays inician en 0 no debes de iniciar el valor del index en 1 si no ... pierdes el campo inicial

Fijate en la logica del For que tanto  gerloxxx como yo pusimos.

Saludos.

Newtek
Web Hosting, Design, Development & SEO at Newtek Web Hosting

Humberto12345

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: C# Marca ceros,
« Respuesta #3 en: Lunes 19 de Julio de 2010, 17:25 »
0
:o  :o  :o  :o  :o
Muchas gracias a los 2, probe los 2 codigos y me funcionaron super bien :good: , ahora ya entiendo   :D  
Les agradeceria mucho si pudieran agregarme a mi msn o tener alguna forma de contacto, apenas voy iniciando en C# :comp:
Citar

mi msn es
humbertong@att.net.mx
Bueno muchas gracias Saludos