回答編集履歴

2

追記

2022/01/01 17:23

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -9,3 +9,69 @@
9
9
  printf("[%d %d %d]\n", num[0], num[1], num[2]); して
10
10
 
11
11
  入力値が期待通りに格納されているか確認してください。
12
+
13
+
14
+
15
+ [追記]
16
+
17
+ > ちなみに、epistemeさんならvoid nums(int num[])文はどの様に作るか教えて頂けませんか?
18
+
19
+ ```C
20
+
21
+ #include <stdio.h>
22
+
23
+ #include <string.h>
24
+
25
+ #include <ctype.h>
26
+
27
+ #include <stdbool.h>
28
+
29
+
30
+
31
+ void nums(int num[], int len) {
32
+
33
+ bool ok = false;
34
+
35
+ while ( !ok ) {
36
+
37
+ char val[100];
38
+
39
+ scanf_s("%s",val,100);
40
+
41
+
42
+
43
+ ok = (strlen(val) == (size_t)len);
44
+
45
+ for ( int i = 0; i < len && ok; ++i ) {
46
+
47
+ ok = isdigit(val[i]);
48
+
49
+ num[i] = val[i] - '0';
50
+
51
+ }
52
+
53
+ if ( !ok ) {
54
+
55
+ printf("やり直しです。 %d文字入力して下さい。 -> ",len);
56
+
57
+ }
58
+
59
+ }
60
+
61
+ }
62
+
63
+
64
+
65
+ int main(void) {
66
+
67
+ int num[3];
68
+
69
+ nums(num, 3);
70
+
71
+ printf("[%d %d %d]\n", num[0], num[1], num[2]);
72
+
73
+ return 0;
74
+
75
+ }
76
+
77
+ ```

1

追記

2022/01/01 17:23

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1,3 +1,11 @@
1
1
  関数:nums は正しく動作してますか?
2
2
 
3
3
  int val_cpy = (int)val; が**ものすごく怪しい**のですが...
4
+
5
+
6
+
7
+ break; の直前に 
8
+
9
+ printf("[%d %d %d]\n", num[0], num[1], num[2]); して
10
+
11
+ 入力値が期待通りに格納されているか確認してください。