Foros del Web » Programación para mayores de 30 ;) » C/C++ »

necesito ayuda es sencillo pero soy nuevo en esto...

Estas en el tema de necesito ayuda es sencillo pero soy nuevo en esto... en el foro de C/C++ en Foros del Web. hola como estan tengo 2 probemas bueno es super sencillo..son 2 dudas quisiera saber como por ejemplo que me den un rut. escriba el rut: ...
  #1 (permalink)  
Antiguo 20/10/2006, 12:27
Avatar de bzero  
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 1 mes
Puntos: 0
Pregunta necesito ayuda es sencillo pero soy nuevo en esto...

hola como estan tengo 2 probemas bueno es super sencillo..son 2 dudas
quisiera saber como por ejemplo que me den un rut.
escriba el rut: "132578658"
y eso guerdarlo en un arreglo entero altiro osea en la posicion 0 el 1 en la 1 el3 asi..se puede con gets. pero es para char y yo quiero q o pase a un arreglo de entero y si no se puede como pasar de char a entero el array altiro..

bueno esas son las 2 dudas.. q tengo de antemano gracias...

Última edición por bzero; 20/10/2006 a las 12:29 Razón: por q me fato escribir y arreglar algunas cositas..jejej XD
  #2 (permalink)  
Antiguo 20/10/2006, 15:07
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Y tu que llevas hecho de esto, alguna idea?

Saludos
  #3 (permalink)  
Antiguo 21/10/2006, 16:02
Avatar de bzero  
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 1 mes
Puntos: 0
mira eleido unpoco y practicado pero comence hace como una semana
por eso necesito ayuda..aparte q no encuentro como hacerlo...lo unico q se es lo basico matrices, arrays, capturar menus y esas cosas como deconsola superbasica..
  #4 (permalink)  
Antiguo 21/10/2006, 16:36
Avatar de bzero  
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 1 mes
Puntos: 0
mira tengo este pero lo malo es q si quiero q me los guarde uno por uno los tienes q escribir con un espacio entre los digitos y eso no quiero...

-------------------------------------------------------------------------
#include<stdio.h>
#include<string.h>
#include<conio.h>
int i,sum,num,resto,d,digito;
int rut[10];
main()
{
num=3;
printf("INGRESE SU RUT(con un espacio entremedio): ");
scanf("%d""%d""%d""%d""%d""%d""%d""%d",&rut[0],&rut[1],&rut[2],&rut[3],&rut[4],&rut[5],&rut[6],&rut[7]);
for(i=0; i<=7; i++)
{
d=rut[i]*num;
//printf("|%d|",rut[i]);
sum=sum+d;
num--;
if(num<2)
num=7;
}
resto=(sum%11);
digito=(11-resto);
if((digito<=9)&&(digito>=0))
{
printf("El digito verificador es : %d\n",digito);
}
else
{
if(digito==10)
{
printf("El digito verificador es : K\n");
}
else
{
if(digito==11)
{
printf("El digito verificador es : 0\n");

}
}
}getche();
}
------------------------------------------------------------------------

la parte de abajo lo saque de no se donde por si les parece conocido...XD

Última edición por bzero; 21/10/2006 a las 16:44 Razón: pa completar...
  #5 (permalink)  
Antiguo 21/10/2006, 17:35
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Ok. bien, primero deja entiendo bien tu duda.

Queires que por ejemplo alguien meta "1234", tu lo capturas como una cadena de caracteres, y quieres convertirlo a numeros int separados....

en ese caso, no es tan complicado.

El chiste seria agarrar todo como una cadena de caracteres

char rut[10];
int irut[10];

scanf("%s" rut);

despues namas pasar a int con
irut[i]=atoi(run[i]);

Masomenos la idea.

Por otro lado, el programa que usas tiene muchos problemillas que mas vale que se corrijan ya.



tienes una lista de variables globales.
sum la usas sin inicializar.

sum=sum+d;

imagina que sum al comienzo del programa tubiera otro numero que no fuera 0?
efectos secundarios.

Si te gusta hacer las cosas por ti solo puedes crear una funcion que con un switch case te convierta una letra en numero, siempre y cuando la letra se de un numero.

Saludos
  #6 (permalink)  
Antiguo 23/10/2006, 08:25
Avatar de bzero  
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 1 mes
Puntos: 0
Cita:
Iniciado por Instru Ver Mensaje
despues namas pasar a int con
irut[i]=atoi(run[i]);
eso va en un ciclo sierto..o me equivoco...?
  #7 (permalink)  
Antiguo 23/10/2006, 08:46
Avatar de bzero  
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 1 mes
Puntos: 0
asi....
Código:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
char irut[10];
int i,sum,num,resto,d,digito;
int rut[10];
main()
{
num=3;
printf("INGRESE SU RUT(con un espacio entremedio): ");
scanf("%s",irut);
for(i=0; i<=10; i++)
{rut[i]=atoi(irut[i]);}
for(i=0; i<=7; i++)
{
d=rut[i]*num;
//printf("|%d|",rut[i]);
sum=sum+d;
num--;
if(num<2)
num=7;
}
resto=(sum%11);
digito=(11-resto);
if((digito<=9)&&(digito>=0))
{
printf("El digito verificador es : %d\n",digito);
}
else
{
if(digito==10)
{
printf("El digito verificador es : K\n");
}
else
{
if(digito==11)
{
printf("El digito verificador es : 0\n");

}
}
}getche();
}
eso no me funka lloro....:

dice q tiene un problema de compilacion

5.cpp In function `int main()':
14 5.cpp invalid conversion from `char' to `const char*'
14 5.cpp initializing argument 1 of `int atoi(const char*)'

Última edición por bzero; 23/10/2006 a las 08:55
  #8 (permalink)  
Antiguo 24/10/2006, 10:45
Avatar de bzero  
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 1 mes
Puntos: 0
eee..ya lo hice gracias...

Hola perdonen pero ya lo hice.. me aburri de hacerlo de esa forma asi q lo hice a la malita..bueno no se...pero me finciono....

aca les mando el codigo...para los q tenian esa duda q es bien recurrente y gracias por la ayuda..

Código:
#include<stdio.h>
#include<conio.h>

int j=1;
int rut,total,num;
int i;

main()
{
printf("Ingrese rut : ");
scanf("%i",&rut);
for(i=8;i>=0;i--)
{
     j++;
     if(j>7){j=2;}
     total+=(rut%10)*j;
     rut= rut/10;
}
num = 11- total % 11;
if (num == 11){printf ("-0");}
if (num == 10){printf ("-k");}
printf ("-%i",num);

getche();
}
gracias a todos los q leieron y no ayudaron no brama...nos vemos si puedo Ayudo ok...gracias...

xau
  #9 (permalink)  
Antiguo 24/10/2006, 14:55
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Lo siento, tuve unos dias algo pesado y no habia podido checar tu mensaje.
Que bueno que lo has podido resolver solo, asi se hacen los bueno programadores, pensando por ellos mismos.

Saludos

PD:tu metodo no es a las malas, sino es simplemente otro metodo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:22.