A+B(C语言)

计算A+B

http://www.nowcoder.com/questionTerminal/29092b066f8e4b5c90d5463a81f7b75f

#include<cstdio>
#include<cstring>
char a[10005];
int num[10005];//存放答案
void fun()//处理函数 
{
    int t,count=0; 
    scanf("%s",&a);//输入算式
    int len=strlen(a);
    if(a[0]=='+'||a[len-1]=='+')//当+在开头和结尾的时候 
    {
        printf("skipped\n");
        return;
    } 
    for(int i=0;i<len;i++)//找到加号 
    {
        if(a[i]=='+')
        {
            t=i;//记录下+号的位置
            count++; 
        } 

    }
    if(count>1||count==0)//当+号多余一个或者没有+号时 
    {
        printf("skipped\n");
        return;
    }
    int begin_1=0,begin_2=t+1,end_1=t-1,end_2=len-1;
    int c=0,k=0;
    /*
    for(int i=0;i<=end_1;i++)
    printf("%c",a[i]);
    printf("\n");
    for(int i=begin_2;i<=end_2;i++)
    printf("%c",a[i]);
    */
    while(end_1>=begin_1||end_2>=begin_2)//将+号前后从后往前加和 
    {
        int m1=0,m2=0;
        if(end_1>=begin_1)m1=a[end_1]-'0';
        if(end_2>=begin_2)m2=a[end_2]-'0';
        num[c++]=(m1+m2+k)%10;
        k=(m1+m2+k)/10;
        end_1--;
        end_2--;
    }
    if(k)
    {
        printf("%d",k);
    }
    for(int i=c-1;i>=0;i--)
    printf("%d",num[i]);
    printf("\n"); 
}
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        fun();
    } 
    return 0;
} 
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务