Foros del Web » Programación para mayores de 30 ;) » C/C++ »

AYUDA!No soy capaz de terminar bien el programa

Estas en el tema de AYUDA!No soy capaz de terminar bien el programa en el foro de C/C++ en Foros del Web. Hola soy muy principiante en esto y no soy capaz de terminar dos pasos que me quedan para una calculadorapara números enteros grandes Estoy intentando ...
  #1 (permalink)  
Antiguo 17/01/2009, 04:28
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 3 meses
Puntos: 0
AYUDA!No soy capaz de terminar bien el programa

Hola soy muy principiante en esto y no soy capaz de terminar dos pasos que me quedan para una calculadorapara números enteros grandes

Estoy intentando crear una nueva opción en el menú para llamar a una función que debe: almacenar un número grande en una variable double e imprimir el valor de tal variable double . Por ejemplo el número 1592 se imprimiría como 1.592e+003. Para ello me es OBLIGADO a crear la función:
void ImprimirDouble (struct NumeroLargo nlargo[], int ind1), tal y como la la puse en el código. Y tampoco me dejan usar la función POW().

LA unica pista que me dan para terminar es que piense en que 1592= 2 + 5*10 + 9*102 + 1*103 y acumular en una variable double el valor total, ponderando con las potencias de 10 (las potencias de 10 se pueden ir calculando con otra variable acumuladora). y también que usase printf ("%1d" para imprimir una variable double

Aqui os dejo el código que llevo desarrollado, muchas gracias a todos de ante mano, a ver si podria lograr resolver este apartado del programa.


#include <stdio.h>
#include <math.h>

#define MAX 10
#define MAX_LONG 99

struct NumeroLargo
{
int vector[MAX_LONG];
int cantidad;
};
/////////////////////////////////////
void Crear (struct NumeroLargo nlargo[], int ind, int lg)
{
int i;
nlargo[ind].cantidad=lg;
for (i=0; i<lg-1 ; i++)
{
nlargo[ind].vector[i]= rand()%10;
}
nlargo[ind].vector[lg-1]= rand()%9 + 1; //exijo que el ultimo digito sea diferente de 0

}
/////////////////////////////////////////////
void Borrar (struct NumeroLargo nlargo[], int ind)
{
nlargo[ind].cantidad=0;
}
/////////////////////////////////////////////
void Imprimir (struct NumeroLargo nlargo[], int ind)
{
int i, j ;
for(j=0; j<ind ;j++ )
{
printf ("\nNumero %d es: ", j);

for (i=nlargo[j].cantidad-1; i>=0 ; i--)
{
printf ("%1d", nlargo[j].vector[i]);
}
}
}



////////////////////////////////////////////////////////////////////////////////

void ImprimirDouble (struct NumeroLargo nlargo[], int ind1)


///////////////////////////////////////////////////////////////////////////////
int menu() {
int op = 0;

printf("\n\nMENU PRINCIPAL:\n\n");

printf("\t1.- Crear Numero Largo (almacenado al reves) \n");
printf("\t2.- Borrar Numero Largo \n");
printf("\t3.- Imprimir una Lista de Numeros Largos\n");
printf("\t4.- Imprimirlo como Double \n");
printf("\t5.- Sumar dos Numeros Largos \n");
printf("\tCUALQUIER NUMERO NEGATIVO.- Salir \n");
printf("\nELIJA UNA OPCION:");

scanf("%d", &op);
getchar();
return op;
}
//////////////////////////////////////////

main(int argc, char *argv[])
{
int i,j;
int indice1, indice2,indice3, longitud;
int op;

struct NumeroLargo numeros[MAX];

// inicialmente borra todos los numeros
for (i=0; i<MAX; i++)
{
Borrar(numeros, i);
}

op = menu();

while (op >=0 )
{
if (op==1)
{
printf ("Dame indice:");
scanf ("%d", &indice1);
printf ("Dame longitug:");
scanf ("%d", &longitud);

if (indice1<0 || indice1 >=MAX || longitud <0 || longitud >MAX_LONG)
printf ("Indice o longitud negativos o mayor que el maximo permitido\n");
else Crear(numeros, indice1, longitud);
}
else if (op==2)
{
printf ("Dame indice:");
scanf ("%d", &indice1);
if (indice1<0 || indice1 >=MAX) printf ("Indice negativos o mayor que el maximo permitido\n");
else Borrar(numeros, indice1);
}
else if (op==3)
{
printf ("Dame indice:");
scanf ("%d", &indice1);
if (indice1<0 || indice1 >=MAX) printf ("Indice negativos o mayor que el maximo permitido\n");
else Imprimir(numeros, indice1);
}

op = menu();
}

return 0;
}
  #2 (permalink)  
Antiguo 14/01/2010, 02:57
 
Fecha de Ingreso: enero-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: AYUDA!No soy capaz de terminar bien el programa

Hola! resolvistes el problema?? es que yo tengo exactamente la misma duda con el mismito ejercicio jajaja haber si puedes echarme una manita. Un saludo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:02.