Autor
|
Tema: parte decimal (Leído 3,543 veces)
|
mapers
Desconectado
Mensajes: 638
|
quisiera que me ayudaran a ver en donde esta mi error ... ejemplo dar el numerador y denominador 7/3 ...sale 2.3333333333333333 pero me lo debe de guardar en la cad1 solo la parte decimal el 33333333333333333 pero no me lo guarda a que se deve .... #include <cstdlib> #include <iostream> int main() { char cad[1000],cad1[1000]; float num ,denom,x; int i,j=0,p; printf("TECLEA EL NUMERADOR \n"); scanf( "%x" ,&num); printf("TECLEA DENOMINADOR \n"); scanf( "%x" ,&denom); x=num/denom; sprintf( cad, "%f",x); for(i=0;i<strlen(cad);i++) { if(cad[i]=='.') { p=i; } } i=0; for(i=p+1;i<strlen(cad);i++) { cad1[j++]=cad[i]; } i=0; for(i=0;i<strlen(cad1);i++) { printf( "%c",cad1); } printf( "\n"); system("PAUSE"); }
|
|
|
En línea
|
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
mapers, aca te dejo un codigo, te recomiendo que veas la documentacion sobre las funciones empleadas... #include <iostream> #include <cstring> #include <cstdio>
using namespace std;
int main( void ) { char cad01[100], cad02[100], *tmp = NULL; double num, denom, x; int i;
cout << "Numerador: "; cin >> num; cout << "Denominador: "; cin >> denom; x = num / denom; sprintf( cad01, "%f", x );
tmp = strchr( cad01, '.' );
for( i = 0; *(++tmp) != '\0'; ++i ) { cad02[i] = *tmp; } cad02[i] = '\0';
cout << "cad01: " << cad01 << " - cad02: " << cad02 << endl;
return 0; } Salu10.
|
|
« Última modificación: 4 Julio 2010, 09:32 am por nicolas_cof »
|
En línea
|
|
|
|
mapers
Desconectado
Mensajes: 638
|
pero dime porque mi codigo no muestra lo mismo no se supone que hace igual
me refiero a la hora de guardar en cad1
for(i=p+1;i<strlen(cad);i++) { cad1[j++]=cad; } porque no lo guarda
|
|
|
En línea
|
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
mapers, tenes algunos errores de concepto... > Tendrias que decidirte si usar C++ o C, ya que estas haciendo una mezcla... > En el caso que usaras C++ te estaria faltando incluir... #include <cstring> #include <cstdio> para las funciones strlen() y sprintf() y ademas tendrias que declarar el namespace std... Algunos errores en el codigo... > En los printf... tendria que ser de esta forma... > En los scanf tenes que usar %f no %x, este ultimo concuerda con un entero hexadecimal sin signo scanf( "%f" , &num ); ... scanf( "%f", &denom ); > Es redundante inicializar i = 0;, si despues le volves a asignar otro valor... i = 0; for ( i = p + 1; i < strlen( cad1 ) ; i++ ) i = 0; for ( i = 0; i < strlen( cad1 ); i++ ) Te recomendaria leer un libro, porque tenes muchos conceptos flojos... ( no te lo tomes a mal, es un consejo ) https://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.htmly ademas... https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.htmlSalu10.
|
|
« Última modificación: 4 Julio 2010, 09:53 am por nicolas_cof »
|
En línea
|
|
|
|
cbug
Desconectado
Mensajes: 147
|
Mapers podrías leerte un libro de C/C++ cómo ya se te ha recomendado desde el año pasado... aprender a utilizar un depurador... y por supuesto... aprender a escribir... un saludo!
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas!
Otra de las razones por las que no funciona tu codigo, es que no finalizas cad1.
Si vas a utilizar string.h, despues de tmp=strchr(cad,'.'); te ahorraras bastante trabajo con un strcpy(cad1,tmp+1);
¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
|
|
|