| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
konet
Registrado: 21 Oct 2007 Mensajes: 7
| Publicado: 22/10/2007 12:31 pm | | | Título: otra duda |
| #include <stdio.h> int ntfi,ntqi; float cm,cf,pm,pf,cq,pq,pt,ntm; main () { printf("calificacion examen matematicas"); scanf("%f",&cm); printf("cuantas tareas entregaste"); scanf("%f",&ntm); pm:(cm*.9)+(ntm*1)/3; printf("calificacion matematicas es:%f",pm); printf("calificacion examen fisica"); scanf("%f",&cf); printf("cuantas tareas entregaste"); scanf("%f",&ntfi); pf:(cf*. +ntfi; printf("calificacion de fisica es:%f",pf); printf("calificacion examen quimica"); scanf("%f",&cq); printf("cuantas tareas entregaste"); scanf("%f",&ntqi); pq=(cq*.85)+(ntqi*1.5)/3; printf("calificacion quimica es:%f",pm); pt=(pm+pq+pf)/3; printf ("el promedio de las 3 tareas e:%f",pt); return 0; }
estos son los errores
Compiling... tarea 5.c C:\Documents and Settings\caicom\Escritorio\packtarea1\tarea 5.c(10) : warning C4552: '+' : operator has no effect; expected operator with side-effect C:\Documents and Settings\caicom\Escritorio\packtarea1\tarea 5.c(16) : warning C4552: '+' : operator has no effect; expected operator with side-effect C:\Documents and Settings\caicom\Escritorio\packtarea1\tarea 5.c(22) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data C:\Documents and Settings\caicom\Escritorio\packtarea1\tarea 5.c(16) : warning C4102: 'pf' : unreferenced label C:\Documents and Settings\caicom\Escritorio\packtarea1\tarea 5.c(10) : warning C4102: 'pm' : unreferenced label
tarea 5.obj - 0 error(s), 5 warning(s)
que puedo hacer para corregirlo |
| | Volver arriba | |  | digies
Registrado: 18 Nov 2005 Mensajes: 240 Ubicación: Cono Sur
| Publicado: 22/10/2007 1:12 pm | | | Título: |
| Hola
Tu código tiene algunas implementaciones raras...
La función principal main debes definirla como: int main(void) {...} o en el peor de los casos void main(void) {...} El tipo de dato de la cadena de control en
| Código: | scanf("%f", &ntfi); |
es distinto al tipo de dato de la variable ntfi. La forma correcta sería: scanf("%d", &ntfi); Lo mismo ocurre con scanf("%f",&ntqi);
La declaración
| Código: | pm:(cm*.9)+(ntm*1)/3; |
y similares es incorrecta en C. Si quieres asignarle un valor a pm o a cualquier variable utiliza el signo "="
Saludos |
| | Volver arriba | |  | konet
Registrado: 21 Oct 2007 Mensajes: 7
| Publicado: 22/10/2007 1:19 pm | | | Título: |
| | digies escribió: | Hola
Tu código tiene algunas implementaciones raras...
La función principal main debes definirla como: int main(void) {...} o en el peor de los casos void main(void) {...}
|
oye siempre que tenga la funcion main tengo que declararla asi? por que tengo un libro donde las delaron como yo las pongo
| digies escribió: | El tipo de dato de la cadena de control en
| Código: | scanf("%f", &ntfi); |
es distinto al tipo de dato de la variable ntfi. La forma correcta sería: scanf("%d", &ntfi); Lo mismo ocurre con scanf("%f",&ntqi);
|
ese error si me di cuenta despues fue error de dedo xD La declaración
| digies escribió: |
| Código: | pm:(cm*.9)+(ntm*1)/3; |
y similares es incorrecta en C. Si quieres asignarle un valor a pm o a cualquier variable utiliza el signo "="
Saludos |
ahi tambien lo intente como tu dices y ahora me dice C:\Documents and Settings\caicom\Escritorio\packtarea1\tarea 5.c(11) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data osea lo mismo pero con el "=" |
| | Volver arriba | |  | | digies
Registrado: 18 Nov 2005 Mensajes: 240 Ubicación: Cono Sur
| Publicado: 22/10/2007 1:39 pm | | | Título: |
| El error que te muestra creo que se debe a que algunos datos pueden perderse al hacer la asignación. Defínela a pm como double.
Un saludo |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 3650 Ubicación: Mexico
| Publicado: 22/10/2007 3:26 pm | | | Título: |
| | konet escribió: | | digies escribió: | La función principal main debes definirla como: int main(void) {...} |
oye siempre que tenga la funcion main tengo que declararla asi? por que tengo un libro donde las delaron como yo las pongo |
Ese libro esta mal, como ya te indicaron la funcion main debe definirse como "int main(void)" o en el peor de los casos "int main()".
| konet escribió: | | digies escribió: | | Si quieres asignarle un valor a pm o a cualquier variable utiliza el signo "=" |
ahi tambien lo intente como tu dices y ahora me dice C:\Documents and Settings\caicom\Escritorio\packtarea1\tarea 5.c(11) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data osea lo mismo pero con el "=" |
El operador de asignacion en C es "=", utilizar los dos puntos no realizaria una asignacion sino definiria una etiqueta para su uso con goto. Para evitar los mensajes de advertencia sobre perdida de precision lo mas sencillo (como ya te indicaron) es utilizar el tipo double ya que ese es el tipo de los valores literales de punto flotante como "1.0" o "3.141592".
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |