张铎龙 2019-11-06 13:24 采纳率: 100%
浏览 283

一道关于C++ 绝对值排序的问题,我的代码的运行结果满足绝大多数情况的输出,对一些特殊情况出错,但并未查明其原因,请高手指点

图片说明

#include<stdio.h>
using namespace std;
int main(){
    int n,line[100],line_0[100],temp;
    while(scanf("%d",&n)){
        if(n==0){
            return 0;
        }
        for(int i=0;i<n;i++){
            scanf("%d",&line[i]);
        }
        for(int i=0;i<n;i++){
            line_0[i]=line[i];
        }
        for(int i=0;i<n;i++){
            if(line_0[i]<0) line_0[i]=-line_0[i];
        }
        for(int i=1;i<n;i++){
            for(int j=0;j<i;j++){
                if(line_0[j]<line_0[j+1]){
                    temp=line[j];
                    line[j]=line[j+1];
                    line[j+1]=temp;
                    temp=line_0[j];
                    line_0[j]=line_0[j+1];
                    line_0[j+1]=temp;
                }
            }
        }
        for(int i=0;i<n-1;i++){
            printf("%d ",line[i]);
        }
        printf("%d\n",line[n-1]);
    }
    return 0;
}

不知道这段代码哪里有问题,无法对4 0 1 2 -3正确操作进行排序,请高手指点
补充:我的思路是创建两个一样的数组line[100]与line_0[100],操作line_0[100],使其中所有的负数变成正数,然后对line_0[100]进行冒泡排序,同时将line_0[100]中元素的位置移动的操作附加到原数组上,从而实现排序

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
    • ¥20 软件测试决策法疑问求解答
    • ¥15 win11 23H2删除推荐的项目,支持注册表等
    • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
    • ¥15 qt6.6.3 基于百度云的语音识别 不会改
    • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
    • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
    • ¥15 lingo18勾选global solver求解使用的算法
    • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
    • ¥20 测距传感器数据手册i2c