究竟是哪一个不行
#include<stdio.h>#include<math.h>
main()
{ char a[100];int x[100],d,i,j,m,n,k,b,c,h;
for (i=0,j=0;;i++,j++)
{ scanf ("%c",&a[i]);
if (a[i]=='=') break;
}
for (d=1,h=0,i=j-3;i>0;i--)
{ if (i==1&&a[i]<48||a[i]>57)
x[h]=a[0]-48;
if (d!=1&&a[i-1]>=48&&a[i-1]<=57)
{ x[h]=pow(10,d)*(a[i-1]-48)+x[h];
d++;
}
if (d==1&&a[i]>=48&&a[i]<=57&&a[i-1]>=48&&a[i-1]<=57)
{ x[h]=pow(10,d)*(a[i-1]-48)+a[i]-48;
d++;
}
if (d==1&&a[i]>=48&&a[i]<=57&&a[i-1]<48||a[i-1]>57)
x[h]=a[i]-48;
if (a[i-1]=='-') x[h]=-x[h];
if (a[i-1]==',')
h++,d=1;
}
for(i=0;i<=h;i++)
{ for (k=0,n=0,m=0;m<=h;m++)
{ if (x[i]<=x[m])
n++;
if (x[i]>=x[m])
k++;
}
if (n==h+1) b=x[i];
if (k==h+1) c=x[i];
}
if (a[j-2]=='+')
{ if (b<0) printf ("%d + (%d) = %d\n",c,b,c+b);
else printf ("%d + %d = %d\n",c,b,c+b);
}
if (a[j-2]=='-')
{ if (b<0) printf ("%d - (%d) = %d\n",c,b,c-b);
else printf ("%d - %d = %d\n",c,b,c-b);
}
if (a[j-2]=='*')
{ if (b<0) printf ("%d * (%d) = %d\n",c,b,c*b);
else printf ("%d * %d = %d\n",c,b,c*b);
}
if (a[j-2]=='/')
{ if (b==0) printf ("Error!\n");
else if (b<0) printf ("%d / (%d) = %d\n",c,b,c/b);
else printf ("%d / %d = %d\n",c,b,c/b);
}
if (a[j-2]=='%')
{ if (b==0) printf ("Error!\n");
else if (b<0) printf ("%d %% (%d) = %d\n",c,b,c%b);
else printf ("%d %% %d = %d\n",c,b,c%b);
}
}
用该程序运行, 最大数 op 最小数=结果 请问哪一些数不行?我检查不出,但测试又不过,多谢了。