C - Adding the numbers in 2 strings together if a different length

前端 未结 5 1892
粉色の甜心
粉色の甜心 2020-12-22 09:10

If I had two strings:

a = \"1234\"
b = \"4321\"

I could add the two numbers together like this:

for(i=0; i

        
5条回答
  •  萌比男神i
    2020-12-22 09:30

    int num(char x,int len){
        if(len <0)
            return 0;
        return ((x=='1') ? 1 :  (x=='2') ? 2 : (x=='3') ? 3 : (x=='4') ? 4 : (x=='5') ? 5 : (x=='6') ? 6 : (x=='7') ? 7 : (x=='8') ? 8 : 9);
    }
    
    int main(){
    
    
        int result[100];
        int i=0;
        char num1[] = "123456789123456789";
        char num2[] = "1234567811111111111111111111";
        int carry = 0;
        int l1= strlen(num1)-1;
        int l2 = strlen(num2)-1;
        int result1;
    
    
        while(1){
            if(l1 < 0  && l2 <0 && carry == 0)
                break;
            result1 = num(num1[l1],l1) + num(num2[l2],l2);
            l1--;
            l2--;
            if(carry>0){
                result1 +=carry;
                carry = 0;
            }
            carry = result1 / 10;
            result[i] = (result1 % 10);
            i++;
        }
    
        i--;
        printf("\n");
    
        while(i>=0){
                printf("%d",result[i]);
                i--;
        }
    
    }
    

提交回复
热议问题