问题描述
- pat1019数字黑洞,有一个测试点过不去,大神们帮我看下哪错了?谢谢
-
#include <stdio.h> #include <stdlib.h> int comp(const void *a,const void *b){ return *(int*)a-*(int*)b; } int main(){ int n,a[4]={0},i,x,y; scanf("%d",&n); do{ i=0; while(n!=0){ a[i]=n%10; n/=10; i++; } qsort(a,4,sizeof(int),comp); x=1000*a[3]+100*a[2]+10*a[1]+a[0]; y=1000*a[0]+100*a[1]+10*a[2]+a[3]; n=x-y; printf("%04d - %04d = %04dn",x,y,n); }while(n!=6174&&n!=0); return 0; }
解决方案
http://blog.csdn.net/xtzmm1215/article/details/38444887
解决方案二:
把中间的while循环改成
for(i=0;i<4;i++){
a[i]=n%10;
n=n/10;
}
就对了
时间: 2024-12-31 12:58:47