<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>Hola nuevamente,
tengo un pequeño problema con un miembro de una estructura en un pequeño
programilla. El programa es el siguiente:<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>____________________________________________________________________<o:p></o:p></span><BR><font face="Times New Roman">
</font><span style='color: black; font-family: "Arial","sans-serif";'>//aritmetica
basica: sumar, restar, multiplicar y divider numeros reacionales<br>
#include"stdio.h"<br>
typedef struct{<br>
short num; //numerador<br>
short den; //denominador<br>
}RACIONAL;<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'><br>
void reduc(RACIONAL &num);<br>
void fsuma( RACIONAL &sum1, RACIONAL &sum2, RACIONAL &suma);<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>int main(){<br>
RACIONAL r1, r2, suma;<br>
printf("r1\nnumerador:
"); scanf("%d", &r1.num); <br>
printf("denominador: ");
scanf("%d", &r1.den);<br>
printf("\nr2\nnumerador: ");
scanf("%d", &r2.num);<br>
printf("denominador: ");
scanf("%d", &r2.den);<br>
<br>
<br>
printf("a: %d\nb: %d\nc: %d\nd: %d\n", r1.num, r1.den, r2.num,
r2.den);<br>
<br>
return 0;<br>
}<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>_______________________________________________________________<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'> <o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>Me he dado cuenta de que al
tratar de escribir en <em>r2.den </em>se borra el contenido de <em>r1.num; </em>pues si eliminamos la lectura de r2.den ( o sea, la sentencia: <em>scanf("%d", &r2.den) ),</em> r1.num queda con su valor correspondiente.</span><BR><font face="Times New Roman"></font> <BR><span style='color: black; font-family: "Arial","sans-serif";'>He podido
solucionar el problema leyendo en una variable diferente, asi:<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'> </span><BR><span style='color: black; font-family: "Arial","sans-serif";'>________________________________________________________________________________<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>//aritmetica
basica: sumar, restar, multiplicar y divider numeros reacionales<br>
#include"stdio.h"<br>
typedef struct{<br>
short num;<br>
short den;<br>
}RACIONAL;<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'><br>
void reduc(RACIONAL &num);<br>
void fsuma( RACIONAL &sum1, RACIONAL &sum2, RACIONAL &suma);<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>int main(){<br>
RACIONAL r1, r2, suma;<br>
short a;<br>
printf("r1\nnumerador: "); scanf("%d",
&a); r1.num=a;<br>
printf("denominador: ");
scanf("%d", &a); r1.den=a;<br>
printf("\nr2\nnumerador: ");
scanf("%d", &a); r2.num=a;<br>
printf("denominador: ");
scanf("%d", &a); r2.den=a;<br>
<br>
<br>
printf("a: %d\nb: %d\nc: %d\nd: %d\n", r1.num, r1.den, r2.num,
r2.den);<br>
<br>
return 0;<br>
}<o:p></o:p></span><BR><font face="Times New Roman">
</font><BR><span style='color: black; font-family: "Arial","sans-serif";'>_______________________________________________________________________________</span><BR><span style='color: black; font-family: "Arial","sans-serif";'></span> <BR><span style='color: black; font-family: "Arial","sans-serif";'> Mi pregunta es:</span><BR><span style='color: black; font-family: "Arial","sans-serif";'>¿Por qué sucede esto en C++?</span><BR><span style='color: black; font-family: "Arial","sans-serif";'></span> <BR><span style='color: black; font-family: "Arial","sans-serif";'>Nota: utilizo dev C++.</span><BR><span style='color: black; font-family: "Arial","sans-serif";'></span> <BR><span style='color: black; font-family: "Arial","sans-serif";'> Nuevamente gracias por su tiempo.</span><BR> </div></body>
</html>