H2230823013


私信TA

用户名:dotcpp0607166

访问量:4899

签 名:

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

等  级
排  名 136
经  验 7306
参赛次数 2
文章发表 35
年  龄 3
在职情况 待业
学  校 贺州学院
专  业 数据

  自我简介:

谢谢大家,让大家见笑了

TA的其他文章

解题思路:

注意事项:

参考代码:

#include<stdio.h>

#include<string.h>

int main()

{

     int  i,j,str1,str2,k=0;    

     int  a1[200],a2[200],a3[200];     

     char c1[200],c2[200];     //用字符方式存储两个大数的数值

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

     {

          a1[i]=0;               //把int数组内所有数内置为0 

          a2[i]=0;

     }

     scanf("%s",c1);

     scanf("%s",c2);           //用char类型c1,c2存储大数的值 

     str1=strlen(c1);          //用str1表示读入第一个数的长度 

     str2=strlen(c2);   //用str2表示读入第二个数的长度 

     j=0;                      

     for(i=str1-1;i>=0;i--)    //将大数c1从char类型转化为int类型当中    

          a1[j++]=c1[i]-'0';     

     j=0;

     for(i=str2-1;i>=0;i--)    //将大数c2从char类型转化为int类型当中 

          a2[j++]=c2[i]-'0';

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

        {

             a1[i]-=a2[i];

             if(a1[i]<0)           //出现需要向前一位数借1的情况 

             {

                  a1[i]+=10;        //相同位作减法,前减位数小于后减位数向前借"1" 

                  a1[i+1]--;        

             }    

        }

       j=0;                                   //例如a1相减后的结果是1234  

      for(i=199;i>=0;i--)          //a1表示就是1234000...000 

             a3[j++]=a1[i];           //a3变化后为000...0001234 

                                              //下边目的就是想办法把这些前置的0给消除

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

        {

     if(a3[i]!=0)   

          k=1;        //当从第一位数一直到非0的数我们都不需要打印 

     if(k==1)   

          printf("%d",a3[i]);//当第一位非0的数出现时候我们把剩下的数打印出来 

     }

     if(k==0)  

          printf("0");       //避免出现两个数相同捡的为0无输出的情况 

     printf("\n");

     return 0;

}


 

0.0分

3 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区