Autor
|
Tema: Ayuda: cada ves que imprimo mi variable Float, cambia el contenido e.e (Leído 3,776 veces)
|
grox1
Desconectado
Mensajes: 3
|
Tengo esta parte del codigo y todas las variables estan declaradas tipo float y forman parte de una estructura-matriz. El problema que tengo es que cuando hace la cuenta, se guarda en la variable y cuando la imprimo la primera ves, se imprime el valor correcto, pero cuando intenta imprimirla la segunda ves, se imprime un valor que nada que ver xD, ya puse fflush(stdin) pero parece que eso no le hacia nada aj. m[z][5].multa=2000+(1.50*(m[z][2].velreg-m[z][3].vellim)); printf("%f\n", m[z][5].multa); /*primer valor da correcto*/ printf("%f\n", m[z][5].multa); /*valor nada que ver*/ printf("%f\n", m[z][5].multa); /*valor nada que ver*/
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Me parece muy extraño. Si puedes poner el código donde creas la matriz, y la estructura, se podría ver mejor.
Por cierto, colócalos entre las etiquetas GeSHi de C para que se vea mejor.
|
|
|
En línea
|
|
|
|
grox1
Desconectado
Mensajes: 3
|
Ahi la parte del codigo donde declaro todo: #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> #define Y 5
int r1, z, x, j, cont=0, h, cont1=0, b; float prom, acum, a, c; struct infrac{ int nr; int sec; float velreg; float vellim; char fecha[10]; float multa; }m; main(){ printf("Ingrese la cantidad de Infracciones que tiene para cargar:\n"); scanf("%d", &r1); struct infrac m[r1][Y]; z=-1; cont1=0; while(cont1<r1){ z=z+1; system("cls"); printf("Numero de Registro:\n"); scanf("%d", &m[z][0].nr); printf("Sector en el que se produjo la infraccion(1-4):\n"); scanf("%d", &m[z][1].sec); printf("Velocidad Registrada(Km/h):\n"); scanf("%f", &m[z][2].velreg); printf("Velocidad Limite(Km/h):\n"); scanf("%f", &m[z][3].vellim); printf("Fecha(dd/mm/aa):\n"); fflush(stdin); gets(m[z][4].fecha); m[z][5].multa=2000+(1.50*(m[z][2].velreg-m[z][3].vellim)); printf("%f\n", m[z][5].multa); /*primer valor da correcto*/ printf("%f\n", m[z][5].multa); /*valor nada que ver*/ printf("%f\n", m[z][5].multa); /*valor nada que ver*/ cont1=cont1+1; }
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
A mi me funciona perfectamente.
|
|
|
En línea
|
|
|
|
grox1
Desconectado
Mensajes: 3
|
entonces puede ser mi compilador? tengo el dev c++ 5.7.1
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
No sé. Por cierto, en el código que pegaste, se te olvidó una llave.
|
|
|
En línea
|
|
|
|
zShackra
|
Algo de offtopic... Veo varias malas prácticas en tu algoritmo. Te sugiero pasar por este tema... Y usar un compilador decente... Al menos intenta con Code::Blocks o Visual C++ Express... (QtCreator es una buena alternativa).
|
|
« Última modificación: 23 Noviembre 2014, 07:14 am por zShackra »
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Tengo esta parte del codigo y todas las variables estan declaradas tipo float y forman parte de una estructura-matriz. Ese programa tiene varios errores algunos relacionados con el lenguaje y otros de concepto. * Para empezar no es necesario utilizar un array de arrays (mal y mejor conocido como "matriz", tal cosa en el lenguaje C no existe), mas todavía: no utilizas todos los campos de cada elemento. * Declaras el array indicando su numero de elementos mediante una variable: struct infrac m[r1][Y];
Eso no es valido en C90, valido en C99 y opcional en C11 así que vas a tener que revisar la documentación de tu compilador para conocer cual es su caso (mejor utilizar malloc ya que es soportado en los tres estándares). * En C los indices validos inician en 0 y terminan en N-1 donde N es el numero de elementos del array, tu utilizas uno invalido en las lineas: printf("%f\n", m [z ][5]. multa); printf("%f\n", m [z ][5]. multa); printf("%f\n", m [z ][5]. multa);
* Por ultimo declaras una variable "m" antes de la función main la cual no utilizas y por ende deberías eliminar. Y si deseas imprimir una cadena literal terminada con '\n' en lugar de printf es mejor utilizar puts. Un saludo
|
|
|
En línea
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
por que el lenguaje C/C++ cambia en cada compilador
Programación C/C++
|
linux1
|
8
|
4,283
|
24 Junio 2010, 20:46 pm
por Eternal Idol
|
|
|
[Python] print solo si cambia la variable
Python
|
Fyrox
|
1
|
3,560
|
28 Septiembre 2011, 04:13 am
por Novlucker
|
|
|
Cerrar ventana popup o float al hacer click en su contenido
Desarrollo Web
|
maximilion69
|
7
|
13,367
|
23 Junio 2012, 03:50 am
por ©rIsT0BÄl
|
|
|
problema con la variable float
« 1 2 »
Programación C/C++
|
SMFSM
|
10
|
5,155
|
2 Marzo 2014, 22:48 pm
por leosansan
|
|
|
Facebook cambia su algoritmo para dar prioridad al contenido que más te interesa
Noticias
|
wolfbcn
|
0
|
1,034
|
22 Abril 2016, 18:11 pm
por wolfbcn
|
|