Buenas, llevo 4 horas con este ejercicio de vectores y no soy capaz de sacarlo...
"31. La suma.Para operar con números naturales muy grandes se pueden utilizar vectores qeu tengan como componentes los dígitos decimales entre 0 y 9, que serán los dígitos del numero. Escribe un programa que sume dos números natura de hasta X cifras. Para cada número se preguntara la cantidad de cifras que tiene. "
Esto es lo que tengo:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *v1=0, i,*v2=0,j, *Vt, k ;
size_t espai1=0;
size_t espai2=0;
size_t espai3=0;
printf("Digues quantes xifres té el primer numero: "); printf("Digues quantes xifres té el segon numero: ");
//Per a adjudicar el tamany dels vectors
v1
= (int *)malloc( espai1
*sizeof(int) ); v2
= (int *)malloc( espai2
*sizeof(int) ); Vt
= (int *)malloc( espai3
*sizeof(int) ); // Dar la cantidad de numeros
printf("Digues els numeros de la suma (separa cada numero amb un espai): "); for( i=0; i<espai1;i++)
{
}
printf("Digues els numeros de la suma (separa cada numero amb un espai): "); for(j=0; j<espai2; j++)
{
}
//Poner los numeros en un orden inverso
for(i=espai1-1; i>=0; i--)
{
}
for(j=espai2-1; j>=0;j--)
{
}
//Suma
for (i=0; i< espai1; i++)
{
for(j=0; j<espai2; j++)
{
for(k=0; k<espai3+1; k ++)
{
Vt[k] = v1[i] + v2[j];
if(Vt[k]>9)
{
k++;
Vt[k]= Vt[k] + 1;
}
printf("El resultat de la suma es : %d\n", Vt
[k
]); }
}
}
// Ordenar el resultado
for (k=espai3-1; k>=0; k--)
{
}
return 0;
}
Lo que he hecho a sido primero como se puede ver, crear los vectores sin un tamaño, despues pedir el tamaño de dichos vectores.
Para poder hacer la suma sin complicarme demasiado, se me ha ocurrido la idea de pasar los números al orden inverso y luego volver a pasar el resultado.
Si alguien me puede ayudar se lo agradecería.