teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2022/01/01 17:23

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -3,4 +3,37 @@
3
3
 
4
4
  break; の直前に 
5
5
  printf("[%d %d %d]\n", num[0], num[1], num[2]); して
6
- 入力値が期待通りに格納されているか確認してください。
6
+ 入力値が期待通りに格納されているか確認してください。
7
+
8
+ [追記]
9
+ > ちなみに、epistemeさんならvoid nums(int num[])文はどの様に作るか教えて頂けませんか?
10
+ ```C
11
+ #include <stdio.h>
12
+ #include <string.h>
13
+ #include <ctype.h>
14
+ #include <stdbool.h>
15
+
16
+ void nums(int num[], int len) {
17
+ bool ok = false;
18
+ while ( !ok ) {
19
+ char val[100];
20
+ scanf_s("%s",val,100);
21
+
22
+ ok = (strlen(val) == (size_t)len);
23
+ for ( int i = 0; i < len && ok; ++i ) {
24
+ ok = isdigit(val[i]);
25
+ num[i] = val[i] - '0';
26
+ }
27
+ if ( !ok ) {
28
+ printf("やり直しです。 %d文字入力して下さい。 -> ",len);
29
+ }
30
+ }
31
+ }
32
+
33
+ int main(void) {
34
+ int num[3];
35
+ nums(num, 3);
36
+ printf("[%d %d %d]\n", num[0], num[1], num[2]);
37
+ return 0;
38
+ }
39
+ ```

1

追記

2022/01/01 17:23

投稿

episteme
episteme

スコア16612

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