Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[SSL] Duda final / C
Autor Mensaje
federicog Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 96
Agradecimientos dados: 5
Agradecimientos: 7 en 5 posts
Registro en: May 2008
Mensaje: #1
[SSL] Duda final / C Finales Sintaxis y Semántica de los Lenguajes
Estoy viendo un ejercicio de un final de SSL del 9/3/2011. En el primer punto hay que detectar errores en una función programada en C. Según la resolución en el código no hay errores, pero:



void main()
{
int i = 2, *pi = &i;
printf("%.1f\\n", 1 + *pi);
}



¿(1 + *pi) no es de tipo entero? ¿No tendría que imprimirlo con %d? Por las dudas lo probé en gcc y no lo compila justamente por eso: Format specifies type "double" but the argument has type 'int'.

¿Está mal la resolución o se me está escapando algo?

(De paso, saben si cambió el programa o los ejercicios que toman en los finales? La cursé hace un par de años y no conseguí finales nuevos.)

Gracias!
(Este mensaje fue modificado por última vez en: 11-05-2013 17:20 por federicog.)
11-05-2013 17:18
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
Mensaje: #2
RE: [SSL] Duda final / C
Compila. Al poner %f interpreta los bytes como un float (por más que lo hayas definido como int) También podría haber puesto %p y lo imprimía como una dirección, %c y lo imprimía como un caracter, etc. Lo único que no debería poner es %s, porque entonces va a usar 3 como dirección de memoria y va a tirarle error.

#include<stdio.h>
int main(){
int i = 2, *pi = &i;

printf("%.1f\\n", 1 + *pi);

return 0;

}



(Este mensaje fue modificado por última vez en: 11-05-2013 23:36 por Anirus.)
11-05-2013 20:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
federicog Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 96
Agradecimientos dados: 5
Agradecimientos: 7 en 5 posts
Registro en: May 2008
Mensaje: #3
RE: [SSL] Duda final / C
Gracias! No me había dado cuenta de que el compilador me estaba dando una alerta pero igualmente lo compilaba.
12-05-2013 13:39
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: