| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
Arwarld
Registrado: 27 Mar 2011 Mensajes: 7
| Publicado: 14/04/2011 1:22 pm | | | Título: No devuelve nada!! :S |
| Buenas ^^ he hecho el siguiente programa para verificar el DNI de una persona y posteriormente darnos la letra correspondiente con el DNI introducido. El problema es que no me devuelve nada y no se porque. Alguien puede echarme un cable? gracias ^^
os dejo el codigo:
| Código: | #include <stdlib.h> #include <string.h> #include <stdio.h>
#define kTAM 8 main(int argc, char *argv[]) { int dni; char letra[] = "TRWAGMYFPDXBNJZSQVHLCKE"; printf("Este programa verifica el DNI y obtiene la letra correspondiente al mismo");
if (argc != 2) { printf("Uso: %s <DNI>\n", argv[0]); } else { if (strlen(argv[1]) != kTAM) { puts("DNI no valido."); } else { dni = atoi (argv[1]); dni %= 23; printf("%s-%c\n", argv[1],letra[dni]); } } system("pause"); return 0; }
|
|
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 6586 Ubicación: Mexico
| Publicado: 14/04/2011 3:00 pm | | | Título: |
| Deberia funcionar, cambios solo necesita algunos menores. En mi opinion estaria mejor asi:
| Código: | #include <stdlib.h> #include <string.h> #include <stdio.h>
#define kTAM 8
int main(int argc, char *argv[]) { int dni; char letra[] = "TRWAGMYFPDXBNJZSQVHLCKE"; puts("Este programa verifica el DNI"); if (argc != 2){ printf ("Uso: %s <DNI>\n", argv[0]); }else if (strlen (argv[1]) != kTAM){ puts ("DNI no valido."); }else { dni = atoi(argv[1]) % (sizeof letra - 1); printf ("%s-%c\n", argv[1], letra[dni]); } system ("pause"); return 0; } |
En tu caso tal vez no funcione (ninguno de los dos programas) si el compilador que estas utilizando es para MS-DOS/Windows 3.X como es el caso con los de Borland. En ellos el tipo "int" se compone de solo 16 bits y con ellos no "alcanza" para almacenar numeros de ocho digitos. Si ese es el caso (espero que no) basta con utilizar una variable de tipo "long" y en lugar de "atoi" utilizas "atol".
Un saludo _________________ Memory never recaptures reality. Memory reconstructs. All reconstructions change the original, becoming external frames of reference that inevitably fall short. -- Mentat Handbook |
| | Volver arriba | |  | Arwarld
Registrado: 27 Mar 2011 Mensajes: 7
| Publicado: 14/04/2011 4:07 pm | | | Título: |
| pos si, utilizo el Borland porque en clase es lo que nos dan XD lo he probado como me has dicho y funciona, y mi codigo anterior lo he compilado con el DEV-c++ y tmpoco está mal. A la proxima probare mas compiladores antes de abrir una consulta ^^
Muchas gracias por tu resolución  |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |