Código
# include <stdlib.h> # include <conio.h> # include <ctype.h> # define K 10 /*DECLARACION DE CONSTANTES*/ # define LIMITE 1000000 # define M 11 /*FUNCION DIGITOVER:CALCULA EL DIGITO VERIFICADOR*/ int digitover(int digito){ int resto=0,mult=1,i=2,suma=0; while(digito!=0){ resto=digito%K; digito=digito/K; mult=resto*i; suma+=mult; i++; if(i+1==9){ i=2; } } resto=suma/M; digito=resto*M; resto=suma-digito; digito=M-resto; return digito;/*RETORNA DIGITO VERIFICADOR*/ } /*FUNCION ERROR:MUESTRA MENSAJE EN PANTALLA*/ char error(){ ” ES INCORRECTO!!!”); } /*FUNCION MENSAJE:MUESTRA MENSAJE EN PANTALLA*/ char mensaje(){ } /*FUNCION MENU:MUESTRA MENU EN PANTALLA*/ char menu(){ } /*PROGRAMA PRINCIPAL*/ int main(){ int rut,dig,digito=0; char c,resp,d; do{ do{ menu(); c=getche(); if ((c==’1?)||(c==’2?)||(c==’3?)){/*VALIDA LA OPCION DE MENU*/ switch ©{ case ‘1?: rut=0; /*INICIALIZACION*/ “INGRESAR:12345678-X”); /*VALIDA EL DIGITO VERIFICADOR INGRESADO POR EL USUARIO*/ /* OTORGANDO UN VALOR TIPO INT A LA VARIABLE DIG */ if((d==’k')||(d==’K')){ dig=K;/*dig=10*/ } else if(d==’0?){ dig=M;/*dig=11*/ } else if(d==’1?){ dig=1; } else if(d==’2?){ dig=2; } else if(d==’3?){ dig=3; } else if(d==’4?){ dig=4; } else if(d==’5?){ dig=5; } else if(d==’6?){ dig=6; } else if(d==’7?){ dig=7; } else if(d==’8?){ dig=8; } else if(d==’9?){ dig=9; } else{ dig=-1;/*EL DIGITO VERIFICADOR INGRESADO NO ES VALIDO*/ } if(dig!=-1){/*SE REALIZA CUANDO ES VALIDO EL*/ /* DIGITO VERIFICADOR INGRESADO */ if(rut>LIMITE){/*ACEPTA RUT(RUN)MAYORES QUE LIMITE*/ digito=digitover(rut); if(digito==dig){ ” LA VALIDACION”,rut,d); } else{/*SE REALIZA CUANDO EL DIGITO */ /* VERIFICADOR NO ES VALIDO */ error();/*INVOCA FUNCION ERROR*/ } } else{ /*SE REALIZA CUANDO EL RUT NO ES VALIDO*/ error();/*INVOCA FUNCION ERROR*/ } } else{/*SE REALIZA CUANDO EL DIGITO VERIFICADOR INGRESADO NO ES VALIDO */ error();/*INVOCA FUNCION ERROR*/ } mensaje();/*INVOCA FUNCION MENSAJE*/ break;/*FIN CASE 1*/ case ‘2?: rut=0; /*INICIALIZACION*/ “INGRESAR:12345678?); if(rut>LIMITE) /*ACEPTA RUT(RUN) MAYORES A LIMITE*/ { digito=digitover(rut); /*ASIGNACION MEDIANTE INVOCACION*/ /* A FUNCION DIGITOVER */ if(digito==M) { digito=0; } else if(digito==K) { } else{ printf(“\n\tEL DIGITO VERIFICADOR ES: %d”,digito); } else /*SE REALIZA SI EL RUT NO ES VALIDO*/ { error(); /*INVOCA FUNCION ERROR*/ } mensaje();/*INVOCA FUNCION MENSAJE*/ break; /*FIN CASE 2*/ }/*FIN SWITCH*/ } /*FIN IF*/ else{/*SE REALIZA CUANDO LA OPCION DE MENU NO ES VALIDA*/ printf(“\n\tERROR<<<<DEBE ELEGIR UNA OPCION VALIDA”); mensaje();/*INVOCA FUNCION MENSAJE*/ } }while(c!=’3?); printf(“\n\n\t\tQUIRES SALIR DEL PROGRAMA?” “\n\n\t<<<SI…ENTONCES PULSA [ S ]” “\n\t\<<<NO…ENTONCES PULSA UNA TECLA PARA VOLVER AL MENU”); resp=toupper(getch());/*CONVIERTE A MAYUSCULA [s -> S]*/ }while(resp!=’S'); return 0; }/*FIN DEL PROGRAMA*/
no se si algo sobre falte o si esta bien echo porfavor ayudenme es coeficiente este trabajo de ante mano muchas gracias adios.