s1107967177
2015-03-05 12:25
采纳率: 100%
浏览 3.1k

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 = %04d\n",x,y,n);
    }while(n!=6174&&n!=0);
    return 0;
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2015-03-05 15:01
    已采纳
    打赏 评论
  • s1107967177 2015-03-06 05:06

    把中间的while循环改成
    for(i=0;i<4;i++){
    a[i]=n%10;

    n=n/10;

    }
    就对了

    1 打赏 评论

相关推荐 更多相似问题