[C con Clase] Programa en C

José Luis Torre joseluistorrehernandez en gmail.com
Vie Ene 4 12:58:46 CET 2013


Hola Diego:

Tal como planteas el problema no puedo saber qué es lo que sabes y cómo lo
quieres hacer.

He preparado un ejemplo sencillo de cómo puedes almacenar un entero en un
 array de manera que luego puedas tratar las cifras de forma independiente.

Como verás, solo es un ejemplo que te permite almacenar un entero y luego
lo tendrías que hacer con otro y aplicar el algoritmo que deseas, el código
es este:

#include <stdio.h>
#include <stdlib.h>

#define   N  10

void  int_2_array(int, int []);
void  set_0_array(int []);
void  print_array(int []);

void  int_2_array(int n, int v[]){
  int coc;     // cociente
  int res;     // resto
  int i = 0;   // índice del array de enteros

  coc = n/10;
  res = n%10;
  v[i]=res; ++i;

  while (coc != 0) {
n = coc;
coc = n/10;
res = n%10;
v[i] = res; ++i;
  }
}
void  set_0_array(int v[]){
  int i; // índice del array de enteros

  for (i=0; i < N; ++i) v[i]= 0;
}
void  print_array(int v[]){
  int i; // índice del array de enteros

  printf("{");
  for(i=N-1; i >=0; --i) printf("%3d", v[i]);
  printf("}\n");
}

int main(void)
{
int vector[N];
int x = 1234; // ejemplo de uso
 set_0_array(vector);
int_2_array(x, vector);
print_array(vector);
 system("pause");
return 0;
}

Saludos
José Luis



El 31 de diciembre de 2012 18:32, Diego <difehe_nima en hotmail.com> escribió:

> Hola necesito ayuda para realizar este programa:
>
>
> Para enseñar a multiplicar se puede usar el método conocido como algoritmo
> “ABN”. En esencia consiste en descomponer cada número en suma de dígitos
> por potencias de 10, calcular todos los productos posibles con los sumandos
> y sumar todos los resultados, realizando el proceso de forma tabular1. Una
> forma cómoda de realizarlo a mano es hacer las sumas por filas (o por
> columnas) y luego sumar todos estos resultados.
> Realice un programa que muestre la construcción progresiva de la tabla.
> Se pedirán y validarán dos números estrictamente positivos y de 4 cifras a
> lo sumo. Los resultados se mostrarán por pantalla. El programa debe
> preguntar a continuación por un nombre de fichero para escribir (como
> texto) los mismos resultados. Si el fichero se crea correctamente se
> grabarán los resultados y se mostrará el mensaje adecuado. En caso
> contrario el mensaje será de error. En cualquier caso el programa termina.
> Un ejemplo de ejecución es el siguiente (con error en la grabación):
> Escriba un entero positivo para multiplicar (máx 4 cifras): 23
> Escriba un entero positivo para multiplicar (máx 4 cifras): 456789
> Error: No cumple las condiciones pedidas
> Escriba un entero positivo para multiplicar (máx 4 cifras): 1803
> Se realizará la multiplicación 23 x 1803
> Imprimiendo los resultados en pantalla.
> 23 x 1803
> Matriz preparada para multiplicar:
> | 1000 800 0 3
> ------------------------------------------
> 20|
> 3|
> Multiplicaciones:
> | 1000 800 0 3
> ------------------------------------------
> 20| 20000 16000 0 60
> 3| 3000 2400 0 9
> Sumas parciales y Resultado final:
> | 1000 800 0 3
> ------------------------------------------
> 20| 20000 16000 0 60| 36060
> 3| 3000 2400 0 9| 5409
> ------------------------------------------
> | 23000 18400 0 69| 41469
> Escriba el nombre del fichero de salida: /salida.txt
> Error: No se puede generar el fichero de salida.
> FIN del programa
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ




-- 
José Luis Torre
ww.ehu.es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130104/11ee7afe/attachment.html>


Más información sobre la lista de distribución Cconclase