spujb@lemmy.cafe to 196@lemmy.blahaj.zoneEnglish · 1 day agorulelemmy.cafeimagemessage-square22fedilinkarrow-up1113arrow-down11
arrow-up1112arrow-down1imagerulelemmy.cafespujb@lemmy.cafe to 196@lemmy.blahaj.zoneEnglish · 1 day agomessage-square22fedilink
minus-squareanton@lemmy.blahaj.zonelinkfedilinkEnglisharrow-up7·1 day ago#include <stdbool.h> #include <stdio.h> #include <stdlib.h> char* addStrings(char* as, char*bs){ int aL=strlen(as); int bL=strlen(bs); if (aL<bL){ char* temp=bs; int tL=bL; bs=as; bL=aL; as=temp; aL=tL; } char* cs = malloc(aL+2); cs[aL+1]='\0'; bool carry = false; int bi=bL-1; for(int ai=aL-1; ai>=0; ai--,bi--){ char a=as[ai]; char b='0'; if(bi>=0)b=bs[bi]; char c=a+b-'0'; if(carry)c++; carry=c>'9'; if(carry)c-=10; cs[ai+1]=c; } if(carry) cs[0]='1'; else cs[0]='0'; return cs; } int main(int argc, char**args){ printf("%s + %s = %s\n", args[1] , args[2] , addStrings(args[1] , args[2])); }
#include <stdbool.h> #include <stdio.h> #include <stdlib.h> char* addStrings(char* as, char*bs){ int aL=strlen(as); int bL=strlen(bs); if (aL<bL){ char* temp=bs; int tL=bL; bs=as; bL=aL; as=temp; aL=tL; } char* cs = malloc(aL+2); cs[aL+1]='\0'; bool carry = false; int bi=bL-1; for(int ai=aL-1; ai>=0; ai--,bi--){ char a=as[ai]; char b='0'; if(bi>=0)b=bs[bi]; char c=a+b-'0'; if(carry)c++; carry=c>'9'; if(carry)c-=10; cs[ai+1]=c; } if(carry) cs[0]='1'; else cs[0]='0'; return cs; } int main(int argc, char**args){ printf("%s + %s = %s\n", args[1] , args[2] , addStrings(args[1] , args[2])); }