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

cambios scanf printf

Estas en el tema de cambios scanf printf en el foro de C/C++ en Foros del Web. hola .. hago este post por ayuda .. hice este problema de josephus el cual dice: las personas se suicidan mediante un intervalo, solo uno ...
  #1 (permalink)  
Antiguo 21/05/2011, 14:52
Avatar de kmilomannra  
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Pregunta cambios scanf printf

hola ..
hago este post por ayuda ..
hice este problema de josephus el cual dice: las personas se suicidan mediante un intervalo, solo uno vive...
el asunto es que quiero pasar los cin y cout a printf y scanf (c++)
pero al momento de hacerlo me salen errores no se porque u.u
especificamente en los cin->scanf
Código C:
Ver original
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5.  
  6. using namespace std;
  7.  
  8. struct nodo{
  9.        int dato;
  10.        nodo * siguiente;
  11.        }*t,*x;
  12.        
  13. int main(int argc, char *argv[])
  14. {
  15.     int i, m, n;
  16.     cout<<"valor para numero personas e intervalo: ";
  17.     cin>>n>>m;
  18.     t = (struct nodo *)malloc (sizeof(struct nodo));
  19.     t->dato=1;
  20.     x=t;
  21.     for (i=2; i<=n; i++){
  22.         t->siguiente = new nodo;
  23.         t=t->siguiente;
  24.         t->dato=i;
  25.                 }
  26.     t->siguiente=x;
  27.     while (t!=t->siguiente){
  28.           for(i=1; i<m; i++)
  29.           t=t->siguiente;
  30.           cout<<"\nborrando "<<t->siguiente->dato;
  31.           x=t->siguiente;
  32.           t->siguiente=x->siguiente;
  33.           free (x);
  34.                     }
  35.     cout<<"\nel sobreviviente es "<<t->dato<<endl;            
  36.     system("PAUSE");
  37.     return EXIT_SUCCESS;
  38. }
les agradeceria mucho me ayuden a como pasarlo por que me salen errores al cambiarlos aunque sea 1 y estare completamente agradecido
  #2 (permalink)  
Antiguo 21/05/2011, 15:10
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: cambios scanf printf

¿Por qué quieres pasar a printf y scanf si es mejor usar cout y cin en C++?
  #3 (permalink)  
Antiguo 21/05/2011, 15:21
Avatar de kmilomannra  
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Respuesta: cambios scanf printf

pasa que el profe quiere el programa con printf y scanf, quiere hacer el paso
...igual se lo llevaria asi para mostrarselo y me pudiera decir como , pero me diria... investigue como xP
  #4 (permalink)  
Antiguo 21/05/2011, 15:29
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: cambios scanf printf

Bueno, lo malo que tiene el printf y el scanf es que tienes que especificarle directamente que tipos de datos vas a leer o imprimir por pantalla.

Ejemplo para leer e imprimir un entero y una cadena:

Código C++:
Ver original
  1. int dato=0;
  2. char cadena[50];
  3.  
  4. //Leer un entero y una cadena del teclado
  5.  
  6. scanf("%d",&dato);
  7. scanf("%s",cadena);
  8.  
  9. //Imprimir un entero y una cadena por pantalla
  10. printf("Dato: %d\n",dato);
  11. printf("Cadena: %s\n",cadena);

Fíjate que al utilizar scanf los parámetros deben ser pasados como direcciones de memoria (de ahí el uso de &), excepto en el caso de las cadenas, que como sabrás, son una dirección de memoria al primer caracter de la cadena.

En el caso de printf no es necesario.

El %d se usa para leer e imprimir datos de tipo int y el %s para cadenas de caracteres (las cuales terminan en el caracter \0).
  #5 (permalink)  
Antiguo 21/05/2011, 15:40
Avatar de kmilomannra  
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Exclamación Respuesta: cambios scanf printf

gracias por eso me ayudo mucho pero en los punteros nose como hacerlo al printf
Código C:
Ver original
  1. ...
  2. t=t->siguiente;
  3.           printf("\nborrando ",t->siguiente->dato); //asi me da error al compilar
  4.           x=t->siguiente;
  5. ...
no entiendo como pasar el printf con punteros
  #6 (permalink)  
Antiguo 21/05/2011, 16:12
Avatar de kmilomannra  
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Respuesta: cambios scanf printf

bueno encontre mi problema xP
era poner el respectivo %d en la variable que la mostraria xP asi quedo
Código C++:
Ver original
  1. ...
  2. printf("\nborrando %d", t->siguiente->dato);
  3. ...

le agradezco mucha su ayuda
estoy muy contento xD
luego de tantos fail compilation quedo bien xP
grxs...

Etiquetas: cambios, printf, scanf
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 03:05.