teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

やってみたこと、不明な点を追加しました。

2020/07/12 11:36

投稿

Usagi365m
Usagi365m

スコア16

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:ソートの条件を追加しました。

2020/07/12 11:36

投稿

Usagi365m
Usagi365m

スコア16

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
+ ```