#27088: WA line7 自己compile都沒問題,但是到了judge上面就出錯


B10930009 (CTD)

學校 : 不指定學校
編號 : 161233
來源 : [116.241.176.135]
最後登入時間 :
2021-09-22 11:54:32
a528. 大數排序 | From: [116.241.176.135] | 發表日期 : 2021-09-12 15:38

#include<iostream>

#include<vector>

using namespace std;

int compare(string, string);

int main() {

int num = 0;

while (cin >> num) {

vector<string>arr(num);

int ans = 0;

for (int i = 0; i < num; i++) {

cin >> arr[i];

}

for (int i = 0; i < num; i++) {

for (int j = i; j < num; j++) {

ans = compare(arr[i], arr[j]);

if (ans == 1) {

swap(arr[i], arr[j]);

}

}

}

for (int i = 0; i < num; i++) {

cout << arr[i] << endl;

}

}

}

int compare(string a, string b) {

//cout << a[0] << " " << b[0] << endl;

if (a[0] == '-' || b[0] == '-') {

if (a[0] != '-' && b[0] == '-') {

return 1;

}

else if (a[0] == '-' && b[0] != '-') {

return 0;

}

else if (a[0] == '-' && b[0] == '-' && b.size() > a.size()) {

return 1;

}

else if (a[0] == '-' && b[0] == '-' && b.size() == a.size()) {

for (int i = 1; i < a.size(); i++) {

if (a[i] < b[i]) {

return 1;

}

else if (a[i] > b[i]) {

return 0;

}

}

}

}

else {

if (a.size() > b.size() ) {

return 1;

}

else if (a.size() == b.size()) {

for (int i = 0; i < a.size(); i++) {

if (a[i] > b[i]) {

return 1;

}

else if (a[i] < b[i]) {

return 0;

}

}

}

}

}

 
#27089: Re:WA line7 自己compile都沒問題,但是到了judge上面就出錯


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
a528. 大數排序 | From: [27.52.102.84] | 發表日期 : 2021-09-12 15:56

#include

#include

using namespace std;

int compare(string, string);

int main() {

int num = 0;

while (cin >> num) {

vectorarr(num);

int ans = 0;

for (int i = 0; i < num; i++) {

cin >> arr[i];

}

for (int i = 0; i < num; i++) {

for (int j = i; j < num; j++) {

ans = compare(arr[i], arr[j]);

if (ans == 1) {

swap(arr[i], arr[j]);

}

}

}

for (int i = 0; i < num; i++) {

cout << arr[i] << endl;

}

}

}

int compare(string a, string b) {

//cout << a[0] << " " << b[0] << endl;

if (a[0] == '-' || b[0] == '-') {

if (a[0] != '-' && b[0] == '-') {

return 1;

}

else if (a[0] == '-' && b[0] != '-') {

return 0;

}

else if (a[0] == '-' && b[0] == '-' && b.size() > a.size()) {

return 1;

}

else if (a[0] == '-' && b[0] == '-' && b.size() == a.size()) {

for (int i = 1; i < a.size(); i++) {

if (a[i] < b[i]) {

return 1;

}

else if (a[i] > b[i]) {

return 0;

}

}

}

}

else {

if (a.size() > b.size() ) {

return 1;

}

else if (a.size() == b.size()) {

for (int i = 0; i < a.size(); i++) {

if (a[i] > b[i]) {

return 1;

}

else if (a[i] < b[i]) {

return 0;

}

}

}

}

}

你的compare()裡面,如果a.size() < b.size()沒有return。



 
ZeroJudge Forum