Crear Funcion Suma("A"+"B")="C"
Bueno el siguiente problemita que dejo o que me hicieron es el siguiente:
Hacer una funcion que sume dos numeros pero que sea introducidos los numeros como String es decir "12554" y la salida tambien te devuelve un String.
Aqui lo que implemente es crear una funcion que pase los numeros de String a Integer (StrToInt) en C, y otra funcion que lea la cantidad de digitos que tenemos, y bueno usaremos una funcion que ya hemos dado que es la Potencia de un numero.
Calculoa los digitos de numero:
Pasamos los numeros de String a Integer:Código:int digitos(int num) { int i=0, temp; while(temp>10) { i = i + 1; temp = num/10; num = temp; } return i+1; }
Bueno y aqui nuestra funcion:Código:int StrToInt(char num[MAX]) { int i, j, size, tamano; char numero[11] = "0123456789"; int number[10] = {0,1,2,3,4,5,6,7,8,9}; int temp=0; size = strlen(num); tamano = size; for(i=0;i{ for(j=0;j<11;j++) { if(num[i]==numero[j]) { tamano = tamano - 1; temp = temp + number[j]*potencia(10,tamano); } } } return temp; }
Código PHP:
#include
char* sum(char num1[MAX], char num2[MAX]); int StrToInt(char num[MAX]); int potencia(int base, int exponente); int digitos(int num);
#include
#define MAX 1000
int main()
{
char numeroA[MAX];
char numeroB[MAX];
char numeroC[MAX];
printf("A: ");
scanf("%s",&numeroA);
printf("\nB: ");
scanf("%s",&numeroB);
printf("%s + %s = %s",numeroA,numeroB,sum(numeroA, numeroB));
return 0;
}
char* sum(char num1[MAX], char num2[MAX])
{
int temp, val, temp1, temp2, temp3;
int size, i, j, tamano;
char temporal[MAX]="";
int number[10] = {0,1,2,3,4,5,6,7,8,9};
char numero[11] = "0123456789";
temp1 = StrToInt(num1);
temp2 = StrToInt(num2);
temp3 = temp1 + temp2;
size = digitos(temp3);
tamano = size;
for(i=0;i<size;i++)
{
tamano = tamano - 1;
temp = temp3%potencia(10,tamano);
val = temp3/potencia(10,tamano);
temp3 = temp;
for(j=0;j<10;j++)
{
if(val==number[j])
temporal[i]=numero[j];
}
}
return temporal;
}
int digitos(int num)
{
int i=0, temp;
while(temp>10)
{
i = i + 1;
temp = num/10;
num = temp;
}
return i+1;
}
int StrToInt(char num[MAX])
{
int i, j, size, tamano;
char numero[11] = "0123456789";
int number[10] = {0,1,2,3,4,5,6,7,8,9};
int temp=0;
size = strlen(num);
tamano = size;
for(i=0;i<size;i++)
{
for(j=0;j<11;j++)
{
if(num[i]==numero[j])
{
tamano = tamano - 1;
temp = temp + number[j]*potencia(10,tamano);
}
}
}
return temp;
}
int potencia(int base, int exponente)
{
int i, temp=1;
for(i=0; i<exponente; i++)
temp = temp*base;
return temp;
}
0 comentarios:
Publicar un comentario