Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- FILE *fin = fopen("bai3.inp", "r"), *fout = fopen("bai3.out", "w");
- char sum(char a[], char b[], char c[]);
- void format_number(char a[], char b[]);
- int main(){
- int n;
- fscanf(fin, "%d", &n);
- char a[256], b[256], c[256];
- while(n--){
- fscanf(fin, "%s", &a);
- fscanf(fin, "%s", &b);
- printf("a = %s, b = %s\n", a, b);
- sum(a, b, c);
- fprintf(fout, "%s\n", c);
- printf("c = %s\n", c);
- }
- fclose(fin);
- fclose(fout);
- }
- char sum(char a[], char b[], char c[]){
- strrev(a); //dao nguoc 2 so lai
- strrev(b);
- int len;
- if(strlen(a) > strlen(b)){
- len = strlen(a) + 1;
- format_number(a, b); //ham nay dung de them so 0 vao so it chu so hon, vi du 1234 vs 12 thi se chuyen thanh 12340 vs 12000
- }
- else{
- len = strlen(b) + 1;
- format_number(b, a);
- }
- int i, t = 0;
- int numa, numb;
- for(i = 0; i < len; i++){ //cong. cac' so' theo tung` hang`
- numa = a[i] - '0';
- numb = b[i] - '0';
- c[i] = (numa + numb + t)%10 + '0';
- t = numa + numb + t>= 10 ? 1 : 0; //t la` so' nho, vi du 9+6 thi viet 5 nho 1
- }
- c[len] = '\0';
- for(i = len-1; i > 0; i--){ //xoa so 0 thua
- if(c[i] == '0'){
- c[i] = '\0';
- }
- else
- break;
- }
- strrev(c);
- }
- void format_number(char a[], char b[]){
- int lena = strlen(a), lenb = strlen(b);
- a[lena] = '0';
- for(int i = lenb; i <= lena; i++)
- b[i] = '0';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement