回答編集履歴
3
一応 array へのコピーを追加
test
CHANGED
@@ -48,6 +48,8 @@
|
|
48
48
|
|
49
49
|
scanf("%d",&score[i]);
|
50
50
|
|
51
|
+
array[i]=score[i]; //必要?
|
52
|
+
|
51
53
|
if(is_error(score[i])){
|
52
54
|
|
53
55
|
i--;
|
2
説明追加、コード位置移動
test
CHANGED
@@ -8,31 +8,11 @@
|
|
8
8
|
|
9
9
|
プロトタイプとは関係ありませんが、 get_score と error_message の箇所は次のようにしますと、入力の scanf 等や判定式が 1 ヶ所になります。
|
10
10
|
|
11
|
+
( error_message を is_error と名前を変えています。)
|
12
|
+
|
11
13
|
|
12
14
|
|
13
15
|
```c
|
14
|
-
|
15
|
-
void get_score( int score[ ], int n){
|
16
|
-
|
17
|
-
int i;
|
18
|
-
|
19
|
-
for(i=0;i<n;i++){
|
20
|
-
|
21
|
-
printf("No.%d:",i+1);
|
22
|
-
|
23
|
-
scanf("%d",&score[i]);
|
24
|
-
|
25
|
-
if(is_error(score[i])){
|
26
|
-
|
27
|
-
i--;
|
28
|
-
|
29
|
-
}
|
30
|
-
|
31
|
-
}
|
32
|
-
|
33
|
-
}
|
34
|
-
|
35
|
-
|
36
16
|
|
37
17
|
int is_error(int point){
|
38
18
|
|
@@ -56,4 +36,26 @@
|
|
56
36
|
|
57
37
|
}
|
58
38
|
|
39
|
+
|
40
|
+
|
41
|
+
void get_score( int score[ ], int n){
|
42
|
+
|
43
|
+
int i;
|
44
|
+
|
45
|
+
for(i=0;i<n;i++){
|
46
|
+
|
47
|
+
printf("No.%d:",i+1);
|
48
|
+
|
49
|
+
scanf("%d",&score[i]);
|
50
|
+
|
51
|
+
if(is_error(score[i])){
|
52
|
+
|
53
|
+
i--;
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
}
|
60
|
+
|
59
61
|
```
|
1
プロトタイプと関係無無いですが修正例コード追加
test
CHANGED
@@ -1 +1,59 @@
|
|
1
1
|
プロトタイプ宣言を無くしたい/減らしたいということでしたら、"呼ばれる関数" を "呼ぶ関数" より先に書いておくことで出来ます。
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
----
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
プロトタイプとは関係ありませんが、 get_score と error_message の箇所は次のようにしますと、入力の scanf 等や判定式が 1 ヶ所になります。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
```c
|
14
|
+
|
15
|
+
void get_score( int score[ ], int n){
|
16
|
+
|
17
|
+
int i;
|
18
|
+
|
19
|
+
for(i=0;i<n;i++){
|
20
|
+
|
21
|
+
printf("No.%d:",i+1);
|
22
|
+
|
23
|
+
scanf("%d",&score[i]);
|
24
|
+
|
25
|
+
if(is_error(score[i])){
|
26
|
+
|
27
|
+
i--;
|
28
|
+
|
29
|
+
}
|
30
|
+
|
31
|
+
}
|
32
|
+
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
int is_error(int point){
|
38
|
+
|
39
|
+
if( point<0){
|
40
|
+
|
41
|
+
printf("****入力ミス:%dは0未満です****\n",point);
|
42
|
+
|
43
|
+
return 1;
|
44
|
+
|
45
|
+
}
|
46
|
+
|
47
|
+
if( point>100){
|
48
|
+
|
49
|
+
printf("****入力ミス:%dは100をこえています****\n",point);
|
50
|
+
|
51
|
+
return 1;
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
return 0;
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
```
|