解题思路:开两个数组,然后读一个数组的时候将它的绝对值给另一个数组,然后冒泡排序存绝对值的数组的时候同时对原来的数组进行排序
注意事项:时间如果超限就要加个!=EOF
参考代码:
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j,a[105],b[105],w1,temp,temp2;
while(scanf("%d",&n)!=EOF&&n)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
b[i]=abs(a[i]);//取绝对值
}
for(i=0; i<n-1; i++)//开始冒泡排序
{
for(j=0; j<n-1-i; j++)
{
if(b[j]<b[j+1])
{
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
temp2=a[j];//同时对原数组排序
a[j]=a[j+1];
a[j+1]=temp2;
}
}
}
for(i=0; i<n; i++)
{
if(i==0)
printf("%d",a[i]);//如果第一个数组元素输出,不用加空格
else
printf(" %d",a[i]);//否则前面加空格
}
printf("\n");
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复