zoukankan      html  css  js  c++  java
  • a-b(高精度)

    我现在已经是才语言中的一员了,我在此献上今日的佳作——a-b(高精度),以下是我的程序及其注释,欢迎各位来观赏,耶!

    程序:

    #include<stdio.h>

    #include<string.h>

    char s1[1000];

    int a[1000]={0},b[1000]={0},c[1000]={0};

    int main()

    {

          int i,j,z,l1,l2,l,o;

          freopen("hp-.in","r",stdin);

          freopen("hp-.out","w",stdout);

          scanf("%s",s1);  --------------------------------------------//a

          l1=strlen(s1);

          for(i=0;i<=l1-1;i++) -------------------------------------  //把s1(被减数)转换成数字,并倒序存入a数组

               a[l1-1-i]=s1[i]-'0';

          scanf("%s",s1);

          l2=strlen(s1);

          for(i=0;i<=l2-1;i++) --------------------------------- //把s1(减数)转换成数字,并倒序存入b数组

               b[l2-1-i]=s1[i]-'0';

              

          if(l1==l2){  

               for(j=l1;j>=0;j--)

               {

                          if(a[j]>b[j])  -----------------------------//a大

                          {

                                o=0;

                                break;

                          }

                          if(b[j]>a[j])  -----------------------------//b大

                          {

                                o=1;

                                break;

                          }

               }

          }

          if(l1>l2||o==0) ---------------------------------------//a大时

          {   

               l=l1;

               for(i=0;i<l;i++)

               {

                     if(a[i]<b[i])

                     {

                          a[i]=a[i]+10;

                          a[i+1]-=1;

                     }

                     c[i]=a[i]-b[i];

               }

               while(l>1&&c[l-1]==0) l--;-----------------------------------  //舍去高位中无用的0

               for(i=l-1;i>=0;i--)  ------------------------------------------//输出

               {

                     printf("%d",c[i]);

               }

          }   

          else

          {

               printf("-");

               l=l2;

               for(i=0;i<l;i++)

               {

                     if(a[i]>b[i])

                     {

                          b[i]=b[i]+10;

                          b[i+1]-=1;

                     }

                     c[i]=b[i]-a[i];

               }

               while(l>1&&c[l-1]==0) l--; ------------------------------------//舍去高位中无用的0

               for(i=l-1;i>=0;i--)------------------------------------------- //输出

               {

                     printf("%d",c[i]);

               }

          }

          return 0;

    }

    进过这一次的编写,我更加熟练的编写程序,我会向前更进一步!(^o^)/O(∩_∩)O哈哈~( ^_^ )/~~拜拜

  • 相关阅读:
    adb获取不了设备List of devices attached
    Appium常用的API函数
    Clevo P950笔记本加装4G模块
    “CNKI 中国知网 PDF 全文下载”油猴脚本在线安装地址
    使用XTU降低CPU功耗,自动执行不失效
    Clevo P950系列拆机
    Win10的WSL很好用呀
    ubuntu下opencv使用cvNamedWindow()和cvShowImage()出错的解决方法
    2017年研究生数学建模D题(前景目标检测)相关论文与实验结果
    [翻译]怎么阅读一篇论文
  • 原文地址:https://www.cnblogs.com/chentao1c/p/5649390.html
Copyright © 2011-2022 走看看