OceanSir
2017-11-09 08:45
采纳率: 100%
浏览 2.3k

PAT乙级1005题第四个测试点答案错误是什么原因,求大神指导(c语言编写)

#include
int main()
{
int n,i,j,k,temp,temp1;
int a[101] = {0},b[1000];
scanf("%d",&n);
for(i = 0;i < n;i++)
{
scanf("%d",&a[i]);
}
for(i = 0;i < n;i++)
{
temp = a[i];
for(j = 0;;j++)
{
if(temp > 1)
{
if(temp % 2 == 0)
{
temp = temp / 2;
b[j] = temp;
}
else
{
temp = temp * 3 + 1;
b[j] = temp;

}
for(k = 0;k < n;k++)
{
if(b[j] == a[k])
{

a[k] = 1;
}
}
}
else
{
break;
}
}
}
for(i = 0;i < n - 1;i++)
{
for(j = 0;j < n - i - 1;j++)
{
if(a[j] < a[j + 1])
{
temp1 = a[j + 1];
a[j + 1] = a[j];
a[j] = temp1;
}
}
}
for(i = 0;i < n;i++)
{
if(a[i] != 1)
{
printf("%d",a[i]);
if(a[i + 1] != 1)
{
printf(" ");
}
}
else
{
break;
}
}

return 0;

}

2条回答 默认 最新

相关推荐 更多相似问题