加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数加减

发布时间:2020-12-14 02:11:41 所属栏目:大数据 来源:网络整理
导读:太残忍,半个月不做题,就对题目毫无感觉了,明明思路正确清晰,但敲的代码满满的bug,连输入字符串前要开辟空间都能无视。。。还在输入后就清空了却在后面一个劲的对它操作。。。略怀悲伤地把代码改好了。 #includestdio.h #includemath.h #includectype.h

太残忍,半个月不做题,就对题目毫无感觉了,明明思路正确清晰,但敲的代码满满的bug,连输入字符串前要开辟空间都能无视。。。还在输入后就清空了却在后面一个劲的对它操作。。。略怀悲伤地把代码改好了。

#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>


int main(){
    char a[1024];
    char b[1024];
    char tem[1024]; 
    memset(a,'',1024);
    memset(b,1024);
    memset(tem,1024);
    while(scanf("%s%s",a,b)!=EOF){  
        int alen=strlen(a);
        int blen=strlen(b);
        for(int i=0;i<alen;i++){
            tem[i]=a[alen-1-i];
        }
        memset(a,1024);
        strcpy(a,tem);
        memset(tem,1024);
        for(int i=0;i<blen;i++){
            tem[i]=b[blen-1-i];
        }
        memset(b,1024);
        strcpy(b,1024);
        memset(a+alen,'0',1024-alen);
        memset(b+blen,1024-blen);
//--------------------------------------------- 加法 
        int len=alen>blen?alen:blen;
        int t=0;
        int i;
        for(i=0;i<len;i++){
            tem[i]='0'+t+(a[i]-'0'+b[i]-'0')%10;
            t=(a[i]-'0'+b[i]-'0')/10;
        }
        if(t)tem[i]='0'+t+(a[i]-'0'+b[i]-'0')%10;
        len=strlen(tem);        
        for(int i=len-1;i>=0;i--){
            printf("%c",tem[i]);
        }
        printf("n");
//--------------------------------------------------减法
        int jw=0;

        for(i=0;i<len;i++){
            for(i=0;i<len;i++){
                if(alen>blen){
                    if(a[i]<b[i]){
                        jw=1;
                    }
                    tem[i]='0'+(a[i]-t+jw*10-b[i]);             
                    if(jw){
                        t=1;
                        jw=0;
                    }else t=0;
                }else{
                    if(a[i]>b[i]){
                        jw=1;
                    }
                    tem[i]='0'+(b[i]-t+jw*10-a[i]);             
                    if(jw){
                        t=1;
                        jw=0;
                    }else t=0;
                }
            }               
        }       
        len=strlen(tem);        
        for(int i=len-1;i>=0;i--){
            printf("%c",tem[i]);
        }       
        memset(a,1024);
        memset(b,1024);
        memset(tem,1024);
    } 

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读