为什么这样不行?

/*到底哪里错了。。
真的不明白。。
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int comp(const void *a, const void *b)  {  
    return *(char *)a - *(char *)b;  
} 
int main(){
    int i=100;
    char a[12];
wow:while(i++<333){
        sprintf(a,"%d%d%d",i,i*2,i*3);
        if(strlen(a)!=9)continue;
        qsort(a, 9, sizeof(a[0]), comp); 
        for(int j=1;j<9;j++)
        {
            if(a[j]==a[j-1])
                goto wow;
        }
        printf("%d %d %d\n",i,i*2,i*3);
        
    }
}
/*
我的输出:
192 384 576
219 438 657
267 534 801
273 546 819
327 654 981
AC:
192 384 576
219 438 657
273 546 819
327 654 981
为什么267 534 801这一组不行??百思不得其解
*/

2 条评论

  • @ 2017-06-02 23:40:08

    在排序后面加一个if(a[0]=='0')continue;就行了

    • @ 2017-06-03 19:33:22

      soga太谢谢了
      看来以后得好好审题了

  • @ 2017-06-02 23:31:24

    看题哇,是1-9啊,你没检查你的a【12】里面有没有'0'啊当然会出现801咯

    • @ 2017-06-03 19:33:17

      soga太谢谢了
      看来以后得好好审题了

  • 1

信息

ID
1772
难度
2
分类
搜索 点击显示
标签
递交数
2658
已通过
1285
通过率
48%
被复制
25
上传者