numero a array

Iniciado por mapers, 4 Julio 2010, 06:36 AM

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

mapers

quisiera que me digan si existe una funcion que haga lo siguiente:
que  por ejemplo el numero  0.2365 sea un numero de tipo float lo pasemos a un array |0|.|2|3|6|5|  gracias de antemano

nicolas_cof

mapers, aca te dejo un codigo que te puede servir como base...

#include <stdio.h>

int main( void )
{
    char cad[10];
    float num = 0.2365;

    sprintf( cad, "%f", num );

    printf( "%s\n", cad );

    return 0;
}


Salu10.

mapers

men y si quiero el tercer numero de mi arreglo no me imprime nada men

#include <cstdlib>
#include <iostream>

int main( void )
{
    char cad[10];
    float num = 0.2365;

    sprintf( cad, "%f", num );
    printf( "%s\n", cad[2]);
    system("PAUSE");
}

Og.

Cita de: mapers en  4 Julio 2010, 06:57 AM
men y si quiero el tercer numero de mi arreglo no me imprime nada men

#include <cstdlib>
#include <iostream>

int main( void )
{
    char cad[10];
    float num = 0.2365;

    sprintf( cad, "%f", num );
    printf( "%s\n", cad[2]);
    system("PAUSE");
}


Obviamente no te va a imprimir, el %s espera una direccion de memoria, tu estas enviando un caracter, para imprimir caracteres existe: "%c"


Saludos!
|-

nicolas_cof

Ademas de lo mencionado por Og., no te olvides de poner return 0; al final en main()

Otra cosa, no es muy recomendable usar llamadas al sistema para hacer simplemente una pausa, puedes utilizar getchar() de la libreria stdio.h, pero recuerda que siempre debes limpiar el buffer de entrada para que este funcione.

Te recomiendo pasar por este post...

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Y siempre que hagas post de codigo fuente, por favor utiliza las etiquetas GeSHI o code

Salu10.

@synthesize

Vas leyendo número a número y con un bucle lo vas introduciendo en las celdas del arreglo.

Littlehorse

#6
Cita de: Daemon Freedom en  4 Julio 2010, 07:58 AM
Vas leyendo número a número y con un bucle lo vas introduciendo en las celdas del arreglo.

No tiene sentido leer numero a numero, ten en cuenta que el dato es un float. Intenta hacerlo y pon el ejemplo, veras a lo que me refiero.

Lo ideal es usar sprintf (mejor aun, snprintf), como ya esta expuesto.

Código (cpp) [Seleccionar]

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{  
   char cad[10];
   float num = 0.2365f;
   snprintf( cad,sizeof(cad),"%f",num);
   cout<<cad<<endl;
   cin.get();
}


Obviamente también podes leer el dato como una cadena y luego parsearlo previa validación (fgets + sscanf) aunque en el ejemplo inicial la lectura del dato se omite, así que por lo tanto lo ideal seria snprintf.

Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.