杭电2020题错在哪

#include<stdio.h>#include<math.h>intmain(){inta[100],n,i,t;while(scanf("%d",&n)!=EOF&... # include<stdio.h>
# include<math.h>
int main()
{
int a[100],n,i,t;
while(scanf("%d",&n)!=EOF&&n!=0)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
if(fabs(a[i])<fabs(a[i+1]))
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[i]);
}
return 0;
}
展开
 我来答
wyzxk888
2010-06-18 · TA获得超过244个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:149万
展开全部
瞎闹!你就比较了一趟就想排出序来啊,连sample都没过,题目要求是按求绝对值后由大到小排序,你的第二个sample都是没过的,直接用冒泡排序或选择排序下(sqort也可以的)一下就好了,就改变一下比较的条件而已,加个求绝对值:(冒泡排序写的,你看看)
#include<stdio.h>
#include<math.h>
void main()
{
int n,a[100],i,j,t;
while(scanf("%d",&n)!=EOF)
{
if(n>0&&n<=100)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(abs(a[j])<abs(a[j+1]))
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("%d",a[0]);
for(i=1;i<n;i++)
printf(" %d",a[i]);
printf("\n");
}
}
}
asad4444444
2010-06-18 · 超过23用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:64.8万
展开全部
# include<stdio.h>
# include<math.h>
int main()
{
int a[100],n,i,t;
while(scanf("%d",&n)!=EOF&&n!=0)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
if(fabs(a[i])<fabs(a[i+1]))
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[i]);//之前i自加,所以实际i为i+1,,而i+1没有赋值,可能是错误
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sphinx1990
2010-06-18 · TA获得超过1831个赞
知道答主
回答量:219
采纳率:0%
帮助的人:127万
展开全部
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n,a[128],change,i,j;
while(scanf("%d",&n),n){
for(i=0;i<n;i++)
scanf("%d",a+i);
for(i=0,change=1;i<n&&change;i++){
change=0;
for(j=0;j<(n-1);j++){
if(abs(a[j])<abs(a[j+1])) swap(a[j],a[j+1]);
change=1;
}
}
for(i=0;i<n;i++){
if(i==0) printf("%d",a[i]);
else printf(" %d",a[i]);
}
printf("\n");
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heli35
2010-06-18 · TA获得超过238个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:115万
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>

using namespace std;

bool cmp(const int & m1, const int & m2) {
return abs(m1) > abs(m2);
}

int main()
{
int i,n,a[101];
while(scanf("%d",&n)!=EOF && n!=0)
{
for(i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n,cmp);
for(i=0;i<n-1;i++) printf("%d ",a[i]);
printf("%d\n",a[i]);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式