Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h>
- #include<malloc.h>
- #include<math.h>
- //---------------* KHAI BÁO HÀM *------------------------------------//
- void addfirt(short *&C, short &lenghtC, short k);
- void outputphepcong(short *C, short lenghtC);
- //---------------* KHAI BÁO HÀM *------------------------------------//
- void phepcong(short *A, short lenghtA, short *B, short lenghtB, short *&C, short &lenghtC)
- {
- short memoryNumber = 0;
- short SumNode;
- short mark = 1;
- if ((A[0] > 0 && B[0] > 0) || (A[0] < 0 && B[0]<0))
- {
- if (A[0]<0)
- {
- mark = -1;
- }
- A[0] = abs(A[0]);
- B[0] = abs(B[0]);
- if (lenghtA == lenghtB)
- {
- for (short i = lenghtA; i>0; i--)
- {
- SumNode = A[i - 1] + B[i - 1] + memoryNumber;
- addfirt(C, lenghtC, SumNode % 10);
- memoryNumber = SumNode / 10;
- }
- if (memoryNumber != 0)
- {
- addfirt(C, lenghtC, memoryNumber);
- }
- }
- else
- {
- if (lenghtA < lenghtB)
- {
- short *tempt = A;
- A = B;
- B = tempt;
- short temptlengt = lenghtA;
- lenghtA = lenghtB;
- lenghtB = temptlengt;
- }
- short khoangcachAB = lenghtA - lenghtB;
- for (short i = lenghtB; i > 0; i--)
- {
- SumNode = A[i + khoangcachAB - 1] + B[i - 1] + memoryNumber;
- addfirt(C, lenghtC, SumNode % 10);
- memoryNumber = SumNode / 10;
- }
- for (short i = khoangcachAB; i > 0; i--)
- {
- SumNode = A[i - 1] + memoryNumber;
- addfirt(C, lenghtC, SumNode % 10);
- memoryNumber = SumNode / 10;
- }
- if (memoryNumber != 0)
- {
- addfirt(C, lenghtC, memoryNumber);
- }
- }
- C[0] = C[0] * mark;
- }
- else
- {
- // còn trường hợp (1 dương 1 âm)
- }
- }
- void main()
- {
- short A[] = { -1, 0, 0, 0 };
- short B[] = { -1, 0, 0, 0, 9};
- short *C = NULL;
- short lenghtA = sizeof(A) / sizeof(short);
- short lenghtB = sizeof(B) / sizeof(short);
- short lenghtC=0;
- phepcong(A,lenghtA, B, lenghtB, C, lenghtC);
- printf("Ket qua la: \n");
- outputphepcong(C, lenghtC);
- free(C);
- _getch();
- }
- void addfirt(short *&C, short &lenghtC, short k)
- {
- lenghtC++;
- C = (short*)realloc(C, lenghtC*sizeof(short));
- if (lenghtC > 1)
- {
- for (short i = lenghtC - 1; i >0; i--)
- {
- C[i] = C[i - 1];
- }
- }
- C[0] = k;
- }
- void outputphepcong(short *C, short lenghtC)
- {
- for (short i = 0; i<lenghtC; i++)
- {
- printf("%d", C[i]);
- }
- }
Add Comment
Please, Sign In to add comment