杭电acm2020,自己运行结果都正确,为什么交上去错误结果,求各位高手看看》谢谢

2024-11-30 13:29:43
推荐回答(2个)
回答1:

//代码已AC
#include
#include //abs()函数需添加该头文件
int main()
{
int a[100], n, i, j, b, c[100];
while(scanf("%d", &n))
{
if(n == 0) break;
// for(i = 0; i < 100; i++)
// c[i] = 0;
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
// for(i = 0; i < n; i++)
// {
// if(a[i] < 0)
// c[i] = -a[i];
// a[i] = abs(a[i]);
// }
for(i = 0; i < n; i++) //注意i for(j = 0; j if(abs(a[j]) < abs(a[j+1])) //只需比较绝对值,不用改变并保存然后再比较
{
b = a[j+1];
a[j+1] = a[j];
a[j] = b;
}
for(i = 0; i < n; i++)
{
// for(j = 0; j < n; j++)
// {
// if(c[j] == a[i])
// a[i] = -a[i];
// }
if(i == 0)
printf("%d", a[i]);
else
printf(" %d", a[i]);
}
printf("\n");
}
}

回答2:

#include
#include
#include //缺少头文件
int main()
{
int a[100],n,i,j,b,c[100];
while(scanf("%d",&n)) //不用EOF,EOF是无输入时结束
{
if(n==0) break;
for(i=0;i<100;i++)
c[i]=0;

for(i=0;i scanf("%d",&a[i]);
for(i=0;i if(a[i]<0)
c[i]=-a[i];
a[i]=abs(a[i]);}
for(i=0;i {
for(j=0;j<=n-i-2;j++) //估计个数错误n要减2而不是1
{
if(a[j] {
b=a[j+1];
a[j+1]=a[j];
a[j]=b;
}
}
}
for(i=0;i {
for(j=0;j {
if(c[j]==a[i])
a[i]=-a[i];
}
if(i==0)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
printf("\n");
}
}