Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: volterra en 23 Mayo 2010, 20:45 pm



Título: Ayuda con un codigo de C#
Publicado por: volterra en 23 Mayo 2010, 20:45 pm
Hola a toda la comunidad en general!!!

tengo una duda con un codigo que quiero que verifique los caracteres de una frase y luego verificque que letra se repite mas y le asigne el numero uno, a la que le sigue el dos y si hay dos o mas letras que aparescan el mismo numero de veces les asigne el numero segun en el oreden que aparece.

Ejemplo: supongamos
que se tiene la cadena " Hola a todos ", el caracter que mas se repite es la " o ", por
lo que se le asocia el numero 1, el que le sigue es la " a " le corresponde el valor de
2, para los siguientes caracteres es de acuerdo al orden de aparicion en el texto, el 3
estara asociado a la "H".

Lo que busco es poder hacerlo par una frase para despues poder codificrlo en un archivo pero tengo un problema con este codigo que dejo acontinuacion

Código
  1. using System;
  2. namespace Frase
  3. {
  4. class Program
  5. {
  6. public static void Main()
  7. {
  8. string s="Hola a todos";
  9. s.ToLower();
  10. char[] car=s.ToCharArray();
  11. int[] num=new int[28]; //este nos va a contar cuantas veces se repite cada letra
  12. char[] letras=new char[28] {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','ñ','o','p','q','r','s','t','u','v','w','x','y','z'};//aqui me marca un error pues me dice qu son demaciados caracteres
  13. for(int i=0;i<car.Length;i++)
  14. {for(int j=0;j<28;j++)
  15. {if(car[i]==letras[j])
  16. {num[j]++;}
  17. break;
  18. }
  19. }
  20. char bufferc;
  21. int buffern=0;
  22. for(int i=0;i<28;i++)
  23. {for(int j=i;j<28;j++)
  24. {if(num[i]<num[j])
  25. {buffern=num[i];
  26. bufferc=letra[i];
  27. num[i]=num[j];
  28. letras[i]=letras[j];
  29. num[j]=buffern;
  30. letras[j]=bufferc;
  31. }
  32. }
  33. }
  34. }
  35. }
  36. }

PD. Estoy trabajando en SharpDevelop


Título: Re: Ayuda con un codigo de C#
Publicado por: [D4N93R] en 24 Mayo 2010, 16:07 pm
Esta línea

Código
  1. char[] letras=new char[] {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','ñ','o','p','q','r','s','t','u','v','w','x','y','z'};

Quitale el 28 , asi puedes agregar la cantidad de char que quieras, sin necesidad de modificar el tamaño del array.

Y los códigos ponlo siempre entre [ code=csharp ][/code ] para que sea más fácil de entender.