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