#25711: 不懂哪裡有問題 RE (SIGSEGV) 記憶體區段錯誤! Segmentation fault (core dumped)


mirkat.ee06@g2.nctu.edu.tw (炭烤海苔)

學校 : 不指定學校
編號 : 74539
來源 : [138.246.3.200]
最後登入時間 :
2024-08-14 18:08:26
a528. 大數排序 | From: [219.70.141.96] | 發表日期 : 2021-06-15 17:48

// a528: 大數排序
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

bool myfunc(const string &aconst string &b) {
    if (a[0]=='-' && b[0]=='-') {
        if (a.length()==b.length()) {
            for(int i=0 ; i<a.length() ; i++) {
                if (a[i]>b[i])
                    return true;
                else if (a[i]<b[i])
                    return false;
            }
            return true;
        }
        return a.length()>b.length() ;
    }
    else if (a[0]!='-' && b[0]!='-') {
        if (a.length()==b.length()) {
            for(int i=0 ; i<a.length() ; i++) {
                if (a[i]>b[i])
                    return false;
                else if (a[i]<b[i])
                    return true;
            }
            return true;
        }
        return a.length()<b.length() ;
    }
    else
        return (a[0]=='-' && b[0]!='-') ;
}

int main()
{
    int n;
    string s;
    vector<string> v;
    whilecin>> n) {
        v.clear();
        for(int i=0 ; i<n ; i++) {
            cin>> s ;
            v.push_back(s);
        }
        sortv.begin(), v.end(), myfunc);
        for(int i=0 ; i<n ; i++)
            cout<< v[i] << endl;
    }
    return 0;
}
 
ZeroJudge Forum