浙大PTA基础题1005--《继续3n+1》代码的运行问题,c语言

在自己机子测试了很多次。结果都是正确的。但是提交上去显示部分正确。不明白。

#include<stdio.h> 
int main(){
    int n,i,j,tamp;
    scanf("%d",&n);
    int a[n];
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++){
        tamp=a[i];
        while(tamp!=-1&&tamp!=1){
            if(tamp%2==0){
                for(j=0;j<n;j++){
                    if(a[j]==tamp&&j!=i){
                        a[j]=-1;
                    }
                }
                tamp=tamp/2;
            }
            else{
                for(j=0;j<n;j++){
                    if(a[j]==tamp&&j!=i){
                        a[j]=-1;
                    }
                }
                tamp=tamp*3+1;
            }
        
        }
    }
    //冒泡排序
    for (i=1;i<=n-1;i++){
        for(j=0;j<=n-1-i;j++){
            if(a[j]<a[j+1]){
                tamp=a[j];
                a[j]=a[j+1];
                a[j+1]=tamp;    
            }
        }
    }
    if(a[0]!=-1){
        printf("%d",a[0]);
    }
    for(i=1;i<n&&a[i]!=-1;i++)
    printf(" %d",a[i]);
    return 0;
}

纯按照自己思路码的,出错很正常,但是就是没有发现出问题的所在,烦请有缘人指正。

参考

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632