C/Visual C - Ayuda para cambiar cin por scanf

 
Vista:

Ayuda para cambiar cin por scanf

Publicado por Diego (1 intervención) el 02/10/2008 13:15:55
Hola a Todos, pues bien soy novato en este asunto de programar en C, espero que alguien pudiera ayudarme. Tengo un programa que deseocambiar las instrucciones cin por scanf pero ya me estoy atorando, les pongo el codigo que estoy creando:

#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include<stdlib.h> // libreria rayitas

int mcd(int m, int n);
void leer (int &num, int&den);
void reduccion (int &num, int&den);
void realiza (int num, int den);
void suma (int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);
void resta (int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);
void multiplicar (int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);
void dividir (int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);


void main()
{
int m,n,seleccion;
int num1,den1;
int num2,den2;
int dens,nums;

clrscr();

/*mcd(m,n); */


printf(" 1. sumar ");
printf(" 2. restar ");
printf(" 3. multiplicar ");
printf(" 4. dividir ");


/* Procedimiento */
printf("seleccione una opcion: ");
scanf("%i",&seleccion);

switch (seleccion)
{
case 1:
suma(nums,dens,num1,den1,num2,den2);
realiza(num1,den1);
printf("+");
realiza(num2,den2);
printf("=");
reduccion(nums,dens);
realiza(nums,dens);

break;

case 2:
resta(nums,dens,num1,den1,num2,den2);
realiza(num1,den1);
printf("-");
realiza(num2,den2);
printf("=");
reduccion(nums,dens);
realiza(nums,dens);

break;

case 3:
multiplicar(nums,dens,num1,den1,num2,den2);
realiza(num1,den1);
printf(" * ");
realiza(num2,den2);
printf(" = ");
reduccion(nums,dens);
realiza(nums,dens);

break;

case 4:
dividir(nums,dens,num1,den1,num2,den2);
realiza(num1,den1);
printf(" / ");
realiza(num2,den2);
printf(" = ");
reduccion(nums,dens);
realiza(nums,dens);

break;

}

getch();
}

int mcd(int m,int n)
{
int r;
/*printf("dame el numerador: ");
scanf("%d",&m);
printf("dame el denominador: ");
scanf("%d",&n);
*/
while (n!=0)
{
r= (m%n);
m=n;
n=r;
}

return m;
/*printf("%d",m); */
}

void leer (int &num , int &den)
{

cin>> num;
cin>> den;

/*
scanf("%d",num);
scanf("%d",den);
*/

}


void realiza (int num, int den)
{
if(num%den==0)
{
if(num==0)
printf("0");
else
cout<<num/den;
}
else
cout<<num<<"/"<<den;
}

void suma (int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{

printf("dame el primer operando: ");
leer(num1,den1);

printf("dame el segundo operando: ");
leer(num2,den2);

nums=num1*den2+num2*den1;
dens=den1*den2;
}

void resta (int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{
printf("dame el primer operando: ");
leer(num1,den1);
printf("dame el segundo operando: ");
leer(num2,den2);

nums=num1*den2-num2*den1;
dens=den1*den2;
}
void multiplicar(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{
printf("dame el primer operando: ");
leer(num1,den1);
printf("dame el segundo operando: ");
leer(num2,den2);


nums=num1*num2;
dens=den1*den2;

}

void dividir (int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{
printf("dame el primer operando: ");
leer(num1,den1);
printf("dame el segundo operando: ");
leer(num2,den2);

nums=num1*den2;
dens=num2*den1;

}

void reduccion (int &num, int &den)
{
int aux;
aux=den;
den = den /mcd(num,den);
num= num/mcd(num,aux);
}

Y este es el codigo en el que me estpoy basando:

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

void leerque(int &num,int &den);
int mcd(int a, int b);
void reducirque(int &num, int &den);
void sumarque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);
void restarque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);
void multiplicarque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);
void dividirque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2);
void escribirque(int num,int desn);

int main()
{
/* Declaración de variables */

int seleccion;
int num1,den1;
int num2,den2;
int dens,nums;

/* Entrada de datos */

cout<<" MENU DE LA CALCULADORA DE QUEBRADOS"<<endl<<endl;
cout<<"----------------------------------------------------------------"<<endl;
cout<<" 1. Sumar"<<endl;
cout<<" 2. Restar"<<endl;
cout<<" 3. Multiplicar"<<endl;
cout<<" 4. Dividir"<<endl;
cout<<" 5. Salir"<<endl;
cout<<endl<<endl;

/* Procedimiento */

cout<<"Seleccione una opcion:";
cin>>seleccion;

switch(seleccion)
{
case 1:

sumarque(nums,dens,num1,den1,num2,den2);
escribirque(num1,den1);
cout<<" + ";
escribirque(num2,den2);
cout<<" = ";
reducirque(nums,dens);
escribirque(nums,dens);
cout<<endl;

break;

case 2:

restarque(nums,dens,num1,den1,num2,den2);
escribirque(num1,den1);
cout<<" - ";
escribirque(num2,den2);
cout<<" = ";
reducirque(nums,dens);
escribirque(nums,dens);
cout<<endl;

break;

case 3:

multiplicarque(nums,dens,num1,den1,num2,den2);
escribirque(num1,den1);
cout<<" * ";
escribirque(num2,den2);
cout<<" = ";
reducirque(nums,dens);
escribirque(nums,dens);
cout<<endl;

break;

case 4:

dividirque(nums,dens,num1,den1,num2,den2);
escribirque(num1,den1);
cout<<" : ";
escribirque(num2,den2);
cout<<" = ";
reducirque(nums,dens);
escribirque(nums,dens);
cout<<endl;

break;

case 5:
return 0;

}

/* Salida de resultados */



system("PAUSE");
return 0;
}

void leerque(int &num,int &den)
{
/* Declaración de variables */

char l;

/* Entrada de datos */

cin>>num>>l>>den;

}

void escribirque(int num,int den)
{
/*Salida de resultados*/

if (num%den==0)
{
if (num==0)
cout<<"0";
else
cout<<num/den;
}
else
cout<<num<<"/"<<den;
}

void sumarque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{
/*Procedimiento*/

cout<<"Introduzca el primer operando:";
leerque(num1,den1);
cout<<"Introduzca el segundo operando:";
leerque(num2,den2);

nums=num1*den2+num2*den1;
dens=den1*den2;
}

void restarque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{
/*Procedimiento*/

cout<<"Introduzca el primer operando:";
leerque(num1,den1);
cout<<"Introduzca el segundo operando:";
leerque(num2,den2);

nums=num1*den2-num2*den1;
dens=den1*den2;
}

void multiplicarque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{
/*Procedimiento*/

cout<<"Introduzca el primer operando:";
leerque(num1,den1);
cout<<"Introduzca el segundo operando:";
leerque(num2,den2);

nums=num1*num2;
dens=den1*den2;
}

void dividirque(int &nums,int &dens, int &num1,int &den1,int &num2,int &den2)
{
/*Procedimiento*/

cout<<"Introduzca el primer operando:";
leerque(num1,den1);
cout<<"Introduzca el segundo operando:";
leerque(num2,den2);

nums=num1*den2;
dens=num2*den1;
}

void reducirque(int &num,int &den)
{
int aux;

aux=den;
den=den/mcd(num,den);
num=num/mcd(num,aux);
}

int mcd(int a,int b)
{
int r;
while (b!=0)
{
r=(a%b);
a=b;
b=r;
}
return a;
}

Pero me estoy atorando en la funcion de leer donde el usuario introduce los valores :S, por favor alguien ayudeme!!!

Les agradezco de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder