problema scanf

Iniciado por pMV2ere, 31 Octubre 2013, 19:10 PM

0 Miembros y 1 Visitante están viendo este tema.

pMV2ere

buenas, no veo que estoy haciendo mal, supongo que sera algo básico pero....

El error que me sale es en la fila 16 i 25(el error es el mismo en ambas filas). marco con ------------para q lo veáis mejor.

Los guiones obviamente no estan en el programa original

El error es:   error:expected expression before "%" token.


en el ultimo } tambien me sale un warning: control reaches end of non-void function


/*fitxers*/
#include <stdio.h>
#include <stdlib.h>

/*constants*/
const int END= -1;
const int THOUSAND= 1000;

/*programa*/
int roundToThousand()
{
   /*variables*/
   int thousands , readVal , total;

   total=0;
   scanf("%d",%readVal);--------------------------
   while(readVal!=END){
       thousands=(readVal+500)/ THOUSAND;
       total=total+thousands;
       printf("%d",readVal);
       printf("%d",thousands);
       scanf("%d",%readVal);-----------------------------
   }
   printf("%d",total);
}---------------------------------



gracias de antemano

vangodp

#1
el programa principal debe llamar se main y el signo %delante de %readVal creo que sobra no? :-\
Se recomienda poner return 0; al final por que la funcion devuelve un entero, aun que no recuerdo el motivo...por portabilidad o yo que se  :)

pMV2ere

Cita de: vangodp en 31 Octubre 2013, 19:47 PM
el programa principal debe llamar se main y el signo %delante de %readVal creo que sobra no? :-\
Se recomienda poner return 0; al final por que la funcion devuelve un entero, aun que no recuerdo el motivo...por portabilidad o yo que se  :)

he quitado el % y nada.  El nombre del programa no influye, lo he probado.


el return si que me ha solucionado de la linea 25

rir3760

El problema en las dos llamadas a scanf es utilizar '%' (el operador binario modulo) cuando debería ser '&' (el operador unario "dirección de"). Cambia esas dos sentencias a:
scanf("%d", &readVal);

/* ... */

scanf("%d", &readVal);


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

vangodp

pues si...lo que dice rir3760 es correcto ¿Como me eh olvidado?
Es que le metes el contenido de %d a la dirección de &readVal.
Apenas eh usado scanf o printf, son muy buenas las 2 pero de momento que estoy aprendiendo  c++ con cout me basta por ahora.
Saludos siempre se aprende algo ^^ ;-)