原程序就一处错误。请把else if(b[j]=b[j+1])
改为else if(b[j]==b[j+1])就可以了。
其实,这个程序可以简化如下:
#include
int main()
{ int n,i,j,t,t1;
int a[1000],b[1000]= {0};
scanf("%d",&n);
for(i=0; i { scanf("%d",&a[i]); for(j=a[i]; j; j/=10)b[i]+=j%10; } for(i=0; i for(j=0; j if(b[j]a[j+1]) { t=b[j]; t1=a[j]; b[j]=b[j+1]; a[j]=a[j+1]; a[j+1]=t1; b[j+1]=t;//冒泡排序 } for(i=0; i printf("%d %d\n",a[i],b[i]); }