Código de C/Visual C - Número RUT

Número RUTgráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(3)
Publicado el 24 de Abril del 2003 por Hermes Medina
5.764 visualizaciones desde el 24 de Abril del 2003. Una media de 14 por semana
Código de verificación del número rut.

Versión 1
estrellaestrellaestrellaestrellaestrella(3)

Publicado el 24 de Abril del 2003gráfica de visualizaciones de la versión: Versión 1
5.765 visualizaciones desde el 24 de Abril del 2003. Una media de 14 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <ctype.h>
 
main()
{
char rut[12], digv;
int d[9], sw=0, i, j=0, sum, ver, dig, dign;
clrscr();
gotoxy(30,13);
printf("Ingrese el rut");
gets(rut);
for (i=0; i<12; i++)
   {
   switch(rut[i])
   {
       case '1': d[j]=1;
                 j++;
                 break;
 
       case '2': d[j]=2;
                 j++;
                 break;
 
       case '3': d[j]=3;
                 j++;
                 break;
 
       case '4': d[j]=4;
                 j++;
                 break;
 
       case '5': d[j]=5;
                 j++;
                 break;
 
       case '6': d[j]=6;
                 j++;
                 break;
 
       case '7': d[j]=7;
                 j++;
                 break;
 
       case '8': d[j]=8;
                 j++;
                 break;
 
       case '9': d[j]=9;
                 j++;
                 break;
 
       case '0': d[j]=0;
                 j++;
                 break;
       }
   }
sum=d[0]*3+d[1]*2+d[2]*7+d[3]*6+d[4]*5+d[5]*4+d[6]*3+d[7]*2;
dig=sum%11;
ver=11-dig;
 
switch(ver)
{
   case 10: digv='K';
            break;
 
   case 11: digv='0';
            break;
 
   default: dign=ver;
            sw=1;
}
 
gotoxy(40,15);
if(sw==1)
{
  if(d[8]==ver)
  printf("El rut %s es valido", rut);
  else
  printf("El rut %s es incorrecto", rut);
}
if(sw==0)
{
  rut[11]=toupper(rut[11]);
  if(digv==rut[11])
  printf("El rut %s es valido", rut);
  else
  printf("El rut %s es incorrecto", rut);
  }
  sleep(1);
  return 0;
}



Comentarios sobre la versión: Versión 1 (3)

Miguel
11 de Mayo del 2003
estrellaestrellaestrellaestrellaestrella
Hola Hermes,
Bueno el retoque de lo ansestral con nuevos dedos....
Sabes la validacion de los Numeros de una patente de vehiculos....
Saludos con olor a mar.....
Responder
Alex
13 de Mayo del 2003
estrellaestrellaestrellaestrellaestrella
Nunca esta demas... vale
Responder
Luis Hernández
17 de Abril del 2006
estrellaestrellaestrellaestrellaestrella
Qué código tan mal hecho, horrible!!!

No sirve. Multiplica cada número del rut? que feo, no es estándar. Ni siquiera valida los famosos rut de prueba 1-9, 2-7, 3-5, 6-k

Mejor prueben este:

main(){int T,M=0,S=1;scanf("%d",&T);for(;T;T/=10)S=(S+T%10*(9-M++%6))%11;
printf("%c\n",S?S+47:75);}

Este sí que sí.

Salu2.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s597