Dev - C++ - suma de dos grandes números con vectores

   
Vista:

suma de dos grandes números con vectores

Publicado por Arely Loza (1 intervención) el 24/04/2014 06:34:57
hola :D
tengo un pequeño problema para mi examen me piden entregar este programa pero no me sale lo más importante, verán tengo que introducir un numero muy grande en un arreglo y luego hacer lo mismo pero con un número diferente y otro arreglo, y sumarlos
ejemplo:
A[a]=1234
B[b]=5678

suma=6912 (1234+5678).

y como me es más fácil sumar los arreglos desde el 0 los cambie y me quedaron así:
A[a]=4321
B[b]=8765

entonces la suma quedaría así:

suma=2196 (pretendo cambiarla al fina, no tengo problema con eso )


pero a la hora de sumarlos me queda 111 y ps eso esta muy mal!!!!

mi código es este:


#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<string.h>

int main(){

char A[20], B[20];
char C[20], D[20];
char E[100];
int a,b, c=0, j, i, d=0, e=0;
system("color 30");

printf("\tSuma de dos grandes numeros\n");
printf("\nIntroduzca el primer numero:\n");
scanf("%s", A);
printf("introduzca el segundo numero:\n");
scanf("%s", B);

i=strlen(A)-1;
j=strlen(B)-1;

printf("\n\nla suma de los numeros es:\n");

for(a=i;0<=a;a--){
C[c]=A[a];
c++;
}
C[c]='\0';
printf("%s", C);
printf("\n");

for(b=j;0<=b;b--){
D[d]=B[b];
d++;
}
D[d]='\0';
printf("%s\n", D);
printf("\n");

for(e=0;e<i;e++){
c=0;
d=0;
E[e]=C[c]+D[d];
printf("%i", E[e]); */tiene que haber condicional por si la suma de cada casillero es mayo a 9 /*
c++;
d++;
}


getch ();
return 0;
}



Agradecería mucho que me ayudarán!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

suma de dos grandes números con vectores

Publicado por Pico (24 intervenciones) el 24/04/2014 11:55:20
Lo que estás haciendo es sumar el código ascii de dos caracteres, imprimirlo, sumar otros 2 códigos ascii, imprimirlos... así que sale cualquier cosa.

Lo que quieres hacer es sumar la cifra que representa ese número ascii e imprimir la última cifra del resultado nada más, porque, como pones en el comentario, si el resultad es mayor que 9 sigues teniendo que imprimir sólo una cifra, y la otra la sumas como acarreo a la suma de las cifras siguientes. Es el famoso "me llevo una".

Y no necesitas dar la vuelta a la cadena, solamente ir leyéndola de derecha a izquierda como haces al darle la vuelta (for(a=i;0<=a;a--))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar