中易网

利用字符数组,允许输入两个100位以内的整数,并输出其加 、减、乘运算 结果

答案:1  悬赏:70  
解决时间 2021-04-28 08:06
  • 提问者网友:护她一生,唯爱
  • 2021-04-27 22:06
我才刚学C语言。所以尽量只用C语言基础的回答。
最佳答案
  • 二级知识专家网友:温柔刺客
  • 2021-04-27 23:43
#include <stdio.h>
#include <string.h>
int main()
{
   int i,j,k,n,t,a1,b1;
   char a[10001],b[10001];
   int aa[100001],bb[10001];
   while (scanf("%d",&n)!=EOF)
   {
         for (t=1;t<=n;t++)
         {
             memset(a,0,sizeof(a));
             memset(b,0,sizeof(b));
             memset(aa,0,sizeof(aa));
             memset(bb,0,sizeof(bb));
             scanf("%s%s",a,b);
             a1=strlen(a);
             b1=strlen(b);
             if (a1>b1) k=a1;
             else k=b1;
             j=k;
             for (i=a1-1;i>=0;i--)
             {
                 aa[j]=a[i]-'0';
                 j--;
             }
             j=k;
             for (i=b1-1;i>=0;i--)
             {
                 bb[j]=b[i]-'0';
                 j--;
             }
             for (i=k;i>=0;i--)
             {
                 bb[i]+=aa[i];
                 if (bb[i]>=10) {bb[i]-=10;bb[i-1]++;}
             }
             printf("Case %d:\n",t);
             printf("%s + %s = ",a,b);
             if (bb[0]==0) for (i=1;i<=k;i++) printf("%d",bb[i]);
             else for (i=0;i<=k;i++) printf("%d",bb[i]);
             if (t<n) printf("\n\n");
             else printf("\n");
         }
   }
}

代码是加法的,减法的道理是一样的。乘法的结果位数要扩大,除法,可以用减法实现,慢慢减就可以了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息