回答編集履歴

1

追記

2017/11/14 04:33

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -6,15 +6,13 @@
6
6
 
7
7
  > ```C
8
8
 
9
- > for(j = 1;j < 11;j ++){
9
+ for(j = 1;j < 11;j ++){
10
10
 
11
- > printf("rank %3d = %7.3f\n", j, rank[j]);
11
+ printf("rank %3d = %7.3f\n", j, rank[j]);
12
12
 
13
- > }
13
+ }
14
14
 
15
15
  > ```
16
-
17
-
18
16
 
19
17
 
20
18
 
@@ -53,3 +51,141 @@
53
51
 
54
52
 
55
53
  for文内において、インデックスの推移を見るとデバッグが楽ですよ。
54
+
55
+
56
+
57
+ 追記
58
+
59
+ ---
60
+
61
+ ご自身の力で完成させられたようなので、回答例を提示します。
62
+
63
+ 実際はもっと改良できますが、初心者さんとのことで、簡単めにしています。
64
+
65
+ ```C
66
+
67
+ #include <stdio.h>
68
+
69
+
70
+
71
+ void print_rank(double rank[], int size) {
72
+
73
+ puts("------------");
74
+
75
+ puts("Score Ranking");
76
+
77
+ for(int i = 0; i < size; i++) {
78
+
79
+ printf("rank %3d = %7.3f\n", i+1, rank[i]);
80
+
81
+ }
82
+
83
+ }
84
+
85
+
86
+
87
+ int main(void){
88
+
89
+ double rank[11] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
90
+
91
+ print_rank(rank, 10);
92
+
93
+
94
+
95
+ double score = 35;
96
+
97
+ rank[10] = score;
98
+
99
+
100
+
101
+ // Insertion Sort
102
+
103
+ int new_rank;
104
+
105
+ for (int k = 10; k > 0; k--) {
106
+
107
+ if (rank[k - 1] > rank[k]) {
108
+
109
+ double tmp = rank[k];
110
+
111
+ rank[k] = rank[k - 1];
112
+
113
+ rank[k - 1] = tmp;
114
+
115
+
116
+
117
+ new_rank = k;
118
+
119
+ }
120
+
121
+ }
122
+
123
+
124
+
125
+ print_rank(rank, 10);
126
+
127
+ printf("Rank in at: %d\n", new_rank);
128
+
129
+ return 0;
130
+
131
+ }
132
+
133
+ ```
134
+
135
+
136
+
137
+ **実行例**
138
+
139
+ ```
140
+
141
+ ------------
142
+
143
+ Score Ranking
144
+
145
+ rank 1 = 10.000
146
+
147
+ rank 2 = 20.000
148
+
149
+ rank 3 = 30.000
150
+
151
+ rank 4 = 40.000
152
+
153
+ rank 5 = 50.000
154
+
155
+ rank 6 = 60.000
156
+
157
+ rank 7 = 70.000
158
+
159
+ rank 8 = 80.000
160
+
161
+ rank 9 = 90.000
162
+
163
+ rank 10 = 100.000
164
+
165
+ ------------
166
+
167
+ Score Ranking
168
+
169
+ rank 1 = 10.000
170
+
171
+ rank 2 = 20.000
172
+
173
+ rank 3 = 30.000
174
+
175
+ rank 4 = 35.000
176
+
177
+ rank 5 = 40.000
178
+
179
+ rank 6 = 50.000
180
+
181
+ rank 7 = 60.000
182
+
183
+ rank 8 = 70.000
184
+
185
+ rank 9 = 80.000
186
+
187
+ rank 10 = 90.000
188
+
189
+ Rank in at: 4
190
+
191
+ ```