C++80分求助

P1957 口算练习题

@[511_Juruo_wyk](/user/1025958) 试试计算 ```cpp len(0) ``` 会出问题(-int极限) 所以长度有时是负的
by Dreamer_002 @ 2023-12-22 16:52:09


改成 ```cpp int len(int n) int size=0; if(n==0)return 1; if(n<0){ n=-n; size++; } while(n>0){ n/=10; size++; } return size; } ``` 即可
by Dreamer_002 @ 2023-12-22 16:53:41


抱歉,缺大括号 ```cpp #include<bits/stdc++.h> using namespace std; const int N = 11; char last; char c[N]; int a1,a2; int len(int n){ int size=0; if(n==0)return 1; if(n<0){ n=-n; size++; } while(n>0){ n/=10; size++; } return size; } void print(int a1,int a2,int s,char c){ printf("%d%c%d=%d\n%d\n",a1,c,a2,s,len(a1)+len(a2)+len(s)+2); return; } int main(){ int t;cin>>t; while(t--){ scanf("%s",c); if(c[0]>='0'&&c[0]<='9')a1=atoi(c),c[0]=last; else scanf("%d",&a1); switch(c[0]){ case 'a':scanf("%d",&a2),print(a1,a2,a1+a2,'+');break; case 'b':scanf("%d",&a2),print(a1,a2,a1-a2,'-');break; case 'c':scanf("%d",&a2),print(a1,a2,a1*a2,'*');break; } last=c[0]; } return 0; } ```
by Dreamer_002 @ 2023-12-22 16:56:10


过了
by Dreamer_002 @ 2023-12-22 16:56:26


@[511_Juruo_wyk](/user/1025958)
by Dreamer_002 @ 2023-12-22 16:57:01


@[zhongruqian](/user/639449) 谢谢,这题我之前换了一种方法过了,不过这种方法一直是令我苦恼的问题。感谢您帮我解决!
by 511_Juruo_wyk @ 2023-12-22 18:43:41


|