回答編集履歴

3

一応 array へのコピーを追加

2021/11/12 16:56

投稿

jimbe
jimbe

スコア12648

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

説明追加、コード位置移動

2021/11/12 16:56

投稿

jimbe
jimbe

スコア12648

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

プロトタイプと関係無無いですが修正例コード追加

2021/11/12 16:53

投稿

jimbe
jimbe

スコア12648

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