質問編集履歴
2
やってみたこと、不明な点を追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,10 +11,17 @@
|
|
11
11
|
このような処理をするときはどのようなコードを書けばいいでしょうか?
|
12
12
|
入力を受け付けるコードを打ち込んでから手が止まってしまいました。
|
13
13
|
|
14
|
-
追加文
|
14
|
+
追加文:やったことはsort()qsort()などの標準ライブラリの使用です。
|
15
|
+
しかし、一行目は入れ替えられるが、一行目をキーにして、二行目を呼び出し、入れ替えるにはどうしたらいいのか、アルゴリズムが思いつきません。
|
15
16
|
|
16
|
-
|
17
|
+
//参考にしたサイト
|
18
|
+
https://codezine.jp/article/detail/6020
|
19
|
+
http://stlalv.la.coocan.jp/sort.html
|
17
20
|
|
21
|
+
追加文:基礎を学ぶために、標準ライブラリを使って処理をしたいです。構造体の一次配列でもOkです。
|
22
|
+
|
23
|
+
ご回答おねがいします!
|
24
|
+
|
18
25
|
```C++
|
19
26
|
#include <iostream>
|
20
27
|
#include <algorithm>
|
@@ -34,6 +41,8 @@
|
|
34
41
|
*/
|
35
42
|
//sortやqsortを使ってみましたが、うまくいきませんでした
|
36
43
|
//sort(num[0],num[0] + n,greater<int>());これだとうまく行かない
|
44
|
+
//一行目を入れ替えて、同じになった数値をキーにして、二行目を比較して、入れ替える。
|
45
|
+
//といった部分が思いつきません。
|
37
46
|
|
38
47
|
for(int i = 0;i < n;i++){
|
39
48
|
cout << num[i][0] << " " << num[i][1] << endl;
|
1
1:自分のてきる限りのソースコードを追加しました 2:ソートの条件を追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,4 +10,34 @@
|
|
10
10
|
一行目の数値が優先され上に表示されます、同じ場合は二行目の数値が優先され上に表示されます。
|
11
11
|
このような処理をするときはどのようなコードを書けばいいでしょうか?
|
12
12
|
入力を受け付けるコードを打ち込んでから手が止まってしまいました。
|
13
|
+
|
14
|
+
追加文:基礎を学ぶために、標準ライブラリを使って処理をしたいです。
|
15
|
+
|
13
|
-
回答のほど、よろしくおねがいします!
|
16
|
+
回答のほど、よろしくおねがいします!
|
17
|
+
|
18
|
+
```C++
|
19
|
+
#include <iostream>
|
20
|
+
#include <algorithm>
|
21
|
+
#include <vector>
|
22
|
+
using namespace std;
|
23
|
+
int main(void){
|
24
|
+
int num[100][100];
|
25
|
+
int n;
|
26
|
+
cin >> n;
|
27
|
+
for(int i = 0;i < n;i++){
|
28
|
+
cin >> num[i][0] >> num[i][1];
|
29
|
+
}
|
30
|
+
/*
|
31
|
+
int num[3][2] = {{ 2, 2 }
|
32
|
+
{ 2, 3 }
|
33
|
+
{ 3, 1 }}
|
34
|
+
*/
|
35
|
+
//sortやqsortを使ってみましたが、うまくいきませんでした
|
36
|
+
//sort(num[0],num[0] + n,greater<int>());これだとうまく行かない
|
37
|
+
|
38
|
+
for(int i = 0;i < n;i++){
|
39
|
+
cout << num[i][0] << " " << num[i][1] << endl;
|
40
|
+
}
|
41
|
+
return 0;
|
42
|
+
}
|
43
|
+
```
|