描述:先加后乘还是先乘后加问题,注意要用long long int #include <cstdio> #include <cstdlib> #include <cstring> char s[1010]; int main() { // freopen("a.txt","r",stdin); int n; scanf("%d\n",&n); while(n--) { gets(s); long long int num_min[100],num_max[100]; int max=0,min=0,flag=0; int len=strlen(s); for(int i=0; i<len; i++) if(s[i]>='0'&&s[i]<='9') { int c=0,j; for( j=i; j<len; j++) if(s[j]>='0'&&s[j]<='9') c=c*10+s[j]-'0'; else break; i=j-1; if(!flag) { num_max[max++]=c; num_min[min++]=c; } else if(flag==1) { num_min[min++]=c; num_max[max-1]=num_max[max-1]+c; } else if(flag==2) { num_max[max++]=c; num_min[min-1]=num_min[min-1]*c; } } else if(s[i]=='+') flag=1; else if(s[i]=='*') flag=2; for(int i=1; i<max; i++) num_max[0]=num_max[0]*num_max[i]; for(int i=1; i<min; i++) num_min[0]=num_min[0]+num_min[i]; printf("The maximum and minimum are %lld and %lld.\n",num_max[0],num_min[0]); } return 0; }
作者:moyan_min 发表于2013-3-18 23:52:50 原文链接
阅读:43 评论:0 查看评论