在自己机子测试了很多次。结果都是正确的。但是提交上去显示部分正确。不明白。
#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;
}
纯按照自己思路码的,出错很正常,但是就是没有发现出问题的所在,烦请有缘人指正。