elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Congruencias DNI en: 28 Diciembre 2016, 17:56 pm
Buenas tardes
Estoy haciendo un programa para calcular la letra del DNI y el NIF utilizando las congruencias módulo 23. He intentado hacerlo de esta forma:
Código
  1. #include<stdio.h>
  2.  
  3. int main(){
  4.  
  5. int N,i,j,cont,R;
  6. char matrix[200],letras[200];
  7. printf("Bienvenido a este programa, que calcula la letra correspondiente a un NIE o DNI determinado\n");
  8. printf("Cuantos documentos quieres comprobar?\n");
  9. scanf("%d",&N);
  10.  
  11. if(N>200) {
  12. printf("\nExceso de documentos permitidos");
  13. return 0;}
  14. cont=1;
  15. for(i=0;(i<N);i++){
  16.  
  17. printf("\nIntroduce el documento numero %d\n",cont);
  18. cont++;
  19. scanf("%s",&matrix[i]);
  20.  
  21. }
  22.  
  23. printf("Estos son los documentos que has introducido:\n");
  24.  
  25. for(i=0;(i<N);i++){
  26. printf("%s \n",&matrix[i]);
  27. }
  28.  
  29.  
  30. for(j=0;(j<N);j++){
  31.  
  32. R=matrix[j]%23;
  33.  
  34. switch (R){
  35.  
  36. case 0:
  37. letras[j]='T';
  38.  
  39. case 1:
  40. letras[j]='R';
  41. break;
  42. case 2:
  43. letras[j]='W';
  44. break;
  45. case 3:
  46. letras[j]='A';
  47. break;
  48. case 4:
  49. letras[j]='G';
  50. break;
  51. case 5:
  52. letras[j]='M';
  53. break;
  54. case 6:
  55. letras[j]='Y';
  56. break;
  57. case 7:
  58. letras[j]='F';
  59. break;
  60. case 8:
  61. letras[j]='P';
  62. break;
  63. case 9:
  64. letras[j]='D';
  65. break;
  66. case 10:
  67. letras[j]='X';
  68. break;
  69. case 11:
  70. letras[j]='B';
  71. break;
  72. case 12:
  73. letras[j]='N';
  74. break;
  75. case 13:
  76. letras[j]='J';
  77. break;
  78. case 14:
  79. letras[j]='Z';
  80. break;
  81. case 15:
  82. letras[j]='S';
  83. break;
  84. case 16:
  85. letras[j]='Q';
  86. break;
  87. case 17:
  88. letras[j]='V';
  89. break;
  90. case 18:
  91. letras[j]='H';
  92. break;
  93. case 19:
  94. letras[j]='L';
  95. break;
  96. case 20:
  97. letras[j]='C';
  98. break;
  99. case 21:
  100. letras[j]='K';
  101. break;
  102. case 22:
  103. letras[j]='E';
  104. break;
  105. }
  106.  
  107.  
  108. }
  109. printf("\n Las letras correspondientes a los documentos introducidos son:\n");
  110. for(i=0;(i<N);i++){
  111. printf("%s",&letras[i]);
  112. }
  113.  
  114.  
  115. return 0;
  116.  
  117. }

Compila correctamente pero a la hora de realizar la operación del resto módulo 23 no se porque no lo realiza correctamente. ¿Alguna idea de que falla?



Mod: Los códigos deben ir en etiquetas GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines