在你的基础上做了最小的修改,AC代码
#include
#include
int main()
{
int n,i,j,t;
int a[100];
while(scanf("%d",&n)!=-1)
{
if(n==0)
return 0;
for(i=0;i
scanf("%d",&a[i]);
}
for(i=1;i
for(j=i;j>0;j--)
{
if(abs(a[j])>abs(a[j-1]))
{
t=a[j];a[j]=a[j-1];a[j-1]=t;
}
}
}
for(i=0;i
printf("%d",a[n-1]);
printf("\n");
}
return 0;
}
1.首先while(scanf("%d",&n)!=-1) ACM中处理多组数据时惯用写法
2.你的冒泡排序写的很怪,不符合规范写法,
3.冒泡趟数搞错了 n个数冒n-1趟 for(i=1;i
从小到大排
for(i=0;i
for(j=0;j
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
我猜肯定是变量的定义放在了执行语句之前
#include
#include
int main()
{
int n;int i,j,t;int a[100];//在acm中这些都要放在前面,不能放在执行语句里
while(1)
{
scanf("%d",&n);
if(n==0) break;
for(i=0;i
for(i=0;i
for(j=i;j>0;j--)
{
if(abs(a[j])>abs(a[j-1])){t=a[j];a[j]=a[j-1];a[j-1]=t;}
}
}
for(i=0;i
printf("%d",a[n-1]);
printf("\n");
}
return 0;
}
我在线如果还不能ac的话,向我提问吧