Advertisement
Guest User

Untitled

a guest
May 20th, 2013
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.33 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define WIDTH   50
  6. #define HEIGHT 100
  7.  
  8. void rev(char* str){
  9.     int len = strlen(str), i=0;
  10.    
  11.     while(i < (len - i - 1)){
  12.         str[i] ^= str[len - i - 1];
  13.         str[len - i - 1] ^= str[i];
  14.         str[i] ^= str[len - i - 1];
  15.         i++;
  16.     }
  17. }  
  18.  
  19. void add(char* a, char* b/*, char* answer*/){
  20.     int     sum=0, carry=0, width=strlen(a)+1, i,j;
  21.     char*   answer = malloc(width);
  22.    
  23.     for(i=0; i<width-1; i++){
  24.         sum = (a[width-2-i]-48) + (b[width-2-i]-48) + carry;
  25.         carry = 0;
  26.         if(sum > 9){
  27.             carry = 1;
  28.             sum-=10;
  29.         }
  30.         answer[i] = sum+48;
  31.     }
  32.    
  33.     if(carry) answer[i++] = carry+48;
  34.     answer[i]= 0;  
  35.    
  36.     rev(answer);
  37.     memcpy(a,answer,strlen(answer));
  38.     a[strlen(a)+1] = 0;
  39.     free(answer);
  40. }
  41.  
  42. int main(){
  43.     char    arr[HEIGHT][WIDTH+2], tempAns[WIDTH+1];
  44.     int     i = 0, j = 0, size = 0, carry = 0;
  45.     FILE    *fp = fopen("../sources/files/p13num.txt","r");
  46.    
  47.     if(!fp) return 1;
  48.  
  49. /*load array with numbers*/
  50.     do{
  51.         while(fgets(arr[i],WIDTH+2,fp)){
  52.             j=0;
  53.             while(arr[i][j]!=0&&arr[i][j]!=0x0d)j++;
  54.             arr[i][j]=0;
  55.             i++;
  56.         }  
  57.     } while(!feof(fp));
  58.    
  59. //set tempAns as all 0s
  60.     memset(tempAns,'0',WIDTH);
  61.     tempAns[WIDTH] = 0;
  62.    
  63.     for(i=0;i<5;i++){
  64.         add(tempAns,arr[i]);
  65.         printf("%i:\t%s\n",i,tempAns); 
  66.     }
  67.  
  68. /*Finish*/ 
  69.     FILE *ofp = fopen("../sources/files/13out.txt","w");
  70.     if(ofp) fprintf(ofp,"%s", arr[i]);
  71.    
  72.     fclose(fp);
  73.     fclose(ofp);
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement