回答編集履歴

3

表現の修正

2019/04/22 04:38

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -20,9 +20,9 @@
20
20
 
21
21
 
22
22
 
23
- 最初からsnoをint型にすりゃのでは。
23
+ 最初からsnoをint型にすれば良いのでは。
24
24
 
25
- %cで受け取る場合も[isdigit](http://www.c-tipsref.com/reference/ctype/isdigit.html)を使えば済む話です。
25
+ char型として扱う場合も既存の[isdigit](http://www.c-tipsref.com/reference/ctype/isdigit.html)関数を使えば済む話です。
26
26
 
27
27
 
28
28
 

2

追記

2019/04/22 04:38

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -1,6 +1,34 @@
1
1
  試してみましたが、正常に動いているように思えます。[Wandbox](https://wandbox.org/permlink/gV4Ysh4MnnZocTE4)
2
2
 
3
3
  改行文字を除去し忘れているとか、呼び出し元のコードに問題があるのでは無いでしょうか。
4
+
5
+
6
+
7
+ #####質問追記を受けて
8
+
9
+ > ```C
10
+
11
+ char sno;
12
+
13
+ ...
14
+
15
+ scanf("%d",&sno);
16
+
17
+ a=numeric_chk(&sno, 5);
18
+
19
+ > ```
20
+
21
+
22
+
23
+ 最初からsnoをint型にすりゃいいのでは。
24
+
25
+ %cで受け取る場合も[isdigit](http://www.c-tipsref.com/reference/ctype/isdigit.html)を使えば済む話です。
26
+
27
+
28
+
29
+ numeric_chkが**文字**を受け取るのか、**文字列**を受け取るのか、仕様をはっきりさせてください。
30
+
31
+ C言語では両者の取り扱いが異なります。
4
32
 
5
33
 
6
34
 

1

追記

2019/04/22 04:37

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -4,6 +4,12 @@
4
4
 
5
5
 
6
6
 
7
+ ---
8
+
7
9
  また、インデントがぐちゃぐちゃです。
8
10
 
9
11
  お手本となるようなコードを探して、できるだけ論理的階層にあったインデントを付けてください。
12
+
13
+
14
+
15
+ **ex.** else節はif節に対応しているのに、インデントレベルが違う。