80分求助,代码C++,改了一下还输出了乱码

P2142 高精度减法

while(lenc>0&&...)
by ⚡LZSY01_XZY⚡ @ 2019-01-27 13:06:53


@[pdc萨伊](/space/show?uid=150391) 输出7是蜂鸣
by ⚡GG⚡ @ 2019-01-27 13:07:49


@[垃圾一个](/space/show?uid=85933) 乱码问题已解决
by 赫敏·东方延绪 @ 2019-01-27 13:10:08


```cpp #include<bits/stdc++.h> #define M 10001 using namespace std; char a1[M],b1[M]; int a[M],b[M],c[M]; int lena,lenb,lenc,i; int main() { scanf("%s",a1); lena=strlen(a1); scanf("%s",b1); lenb=strlen(b1); for(i=0;i<lena;i++) a[lena-i]=a1[i]-'0'; for(i=0;i<lenb;i++) b[lenb-i]=b1[i]-'0'; if(lena==lenb&&a1[lena-1]<b1[lenb-1]||lena<lenb) { cout<<'-'; for(i=1;i<=lenb;i++) { a[i]=a[i]^b[i]; b[i]=a[i]^b[i]; a[i]=a[i]^b[i]; } lena=lena^lenb; lenb=lena^lenb; lena=lena^lenb; } lenc=lena; for(i=1;i<=lena;i++) { if(a[i]<b[i]) { a[i]+=10; a[i+1]--; } c[i]=a[i]-b[i]; } while(c[lenc]==0&&lenc>0)lenc--; for(i=lenc;i>0;i--)printf("%d",c[i]); if(lenc==0)printf("0"); printf("\n"); } ```
by ⚡LZSY01_XZY⚡ @ 2019-01-27 13:12:20


@[LZSY01_XZY](/space/show?uid=141348) 改了一下,反而多错了一个点,第6个点也错了 这就奇怪了
by 赫敏·东方延绪 @ 2019-01-27 13:13:27


``` //高精度计算-大整数减法 #include<bits/stdc++.h> #define M 10001 using namespace std; char a1[M],b1[M]; int a[M],b[M],c[M]; int lena,lenb,lenc,i,x=0,temp; int main() { scanf("%s",a1); lena=strlen(a1); scanf("%s",b1); lenb=strlen(b1); if(lena==lenb&&a1[lena-1]<b1[lenb-1]||lena<lenb) { cout<<'-'; for(i=0;i<lenb;i++) { temp=a1[i]; a1[i]=b1[i]; b1[i]=temp; } temp=lena; lena=lenb; lenb=temp; } for(i=0;i<lena;i++) a[lena-i]=a1[i]-'0'; for(i=0;i<lenb;i++) b[lenb-i]=b1[i]-'0'; lenc=1; x=0; for(lenc=1;lenc<=lena;lenc++) { if(a[lenc]<b[lenc]) { a[lenc]+=10; a[lenc+1]--; } c[lenc]=a[lenc]-b[lenc]; } while(c[lenc]==0&&lenc>0) lenc--; for(i=lenc;i>0;i--) cout<<c[i]; cout<<endl; } ```
by 赫敏·东方延绪 @ 2019-01-27 13:14:31


```cpp if(lenc==0)printf("0"); ```
by ⚡LZSY01_XZY⚡ @ 2019-01-27 13:16:11


@[LZSY01_XZY](/space/show?uid=141348) ??? wrong answer On line 1 column 1, read 1, expected 5. wrong answer Too short on line 1. wrong answer On line 1 column 1, read 1, expected 4. 测试点2:第1行第1列的回答错误,读取1,应为5。 测试点6:错误答案在第1行太短。 测试点10:第1行第1列的回答错误,读取1,应为4。
by 赫敏·东方延绪 @ 2019-01-27 13:47:59


https://www.luogu.org/discuss/show/96531?page=2
by 赫敏·东方延绪 @ 2019-01-27 13:49:31


发错了 https://www.luogu.org/recordnew/show/15771767
by 赫敏·东方延绪 @ 2019-01-27 13:50:14


上一页 | 下一页