杭电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;
} 展开
# 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;
} 展开
展开全部
瞎闹!你就比较了一趟就想排出序来啊,连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");
}
}
}
#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");
}
}
}
展开全部
# 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;
}
# 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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询