杭电acm2020 看看哪里出错了

2025-01-03 01:52:02
推荐回答(4个)
回答1:

这段代码没起作用
for(i=0;i for(j=i;j if(b[j]==-a[i])
a[i]=b[j];
你试试这组数据
45 -23 2 -5 4 12 67 3 0 9
我的建议是你直接对绝对值排序 而不是求出绝对值再排序 就像一楼那样
像我这样 按照你的思想改的
#include "stdio.h"
void main()
{
int a[100],b[100],i,j,n,t;
scanf("%d",&n);
while(n!=0)
{
for(i=0;i scanf("%d",&a[i]);
for(i=0;i {
b[i]=a[i];
if(a[i]<0)
a[i]=-a[i];
}
for(i=0;i for(j=0;j if(a[j] {t=a[j];
a[j]=a[j+1];
a[j+1]=t;
t=b[j];//相应的也交换
b[j]=b[j+1];
b[j+1]=t;
}
/* for(i=0;i for(j=i;j if(b[j]==-a[i])
a[i]=b[j];*/
for(i=0;i printf("%d ",b[i]);//改成b
printf("%d\n",b[i]);
for(i=0;i<=n;i++)
a[i]=b[i]=0;
scanf("%d",&n);
t=0;
}
}

回答2:

#include "stdio.h"
int abs(int num)
{
return num>0?num:-num;
}
void main()
{
int a[100],i,j,n,t;
scanf("%d",&n);
while(n!=0)
{

for(i=0;i {
scanf("%d",&a[i]);
}

for(i=0;i {
for(j=0;j {
if(abs(a[j]) {
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}

for(i=0;i {
printf("%d ",a[i]);
}
printf("%d\n",a[i]);

scanf("%d",&n);
}

}
改为这样
我已经把那些没用的去掉了

回答3:

#include
"stdio.h"
int
abs(int
num)
{
return
num>0?num:-num;
}
void
main()
{
int
a[100],i,j,n,t;
scanf("%d",&n);
while(n!=0)
{
for(i=0;i{
scanf("%d",&a[i]);
}
for(i=0;i{
for(j=0;j{
if(abs(a[j]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i{
printf("%d
",a[i]);
}
printf("%d\n",a[i]);
scanf("%d",&n);
}
}
改为这样
我已经把那些没用的去掉了

回答4:

这段代码没起作用
for(i=0;ifor(j=i;jif(b[j]==-a[i])
a[i]=b[j];
你试试这组数据
45
-23
2
-5
4
12
67
3
0
9
我的建议是你直接对绝对值排序
而不是求出绝对值再排序
就像一楼那样
像我这样
按照你的思想改的
#include
"stdio.h"
void
main()
{
int
a[100],b[100],i,j,n,t;
scanf("%d",&n);
while(n!=0)
{
for(i=0;iscanf("%d",&a[i]);
for(i=0;i{
b[i]=a[i];
if(a[i]<0)
a[i]=-a[i];
}
for(i=0;ifor(j=0;jif(a[j]{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
t=b[j];//相应的也交换
b[j]=b[j+1];
b[j+1]=t;
}
/*
for(i=0;ifor(j=i;jif(b[j]==-a[i])
a[i]=b[j];*/
for(i=0;iprintf("%d
",b[i]);//改成b
printf("%d\n",b[i]);
for(i=0;i<=n;i++)
a[i]=b[i]=0;
scanf("%d",&n);
t=0;
}
}