<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>