回答編集履歴
3
変数名変更
answer
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
ついでには、果たして num 配列(や同様の変数)は int である必要があるのかどうか…。
|
3
3
|
|
4
4
|
```c
|
5
|
-
int isValidNumbers(char *numbers, int
|
5
|
+
int isValidNumbers(char *numbers, int requiredSize) {
|
6
|
-
if(strlen(numbers) !=
|
6
|
+
if(strlen(numbers) != requiredSize) return 0; //過不足
|
7
|
-
for(int i=0; i<
|
7
|
+
for(int i=0; i<requiredSize; i++) {
|
8
8
|
if(numbers[i] < '0' || '9' < numbers[i]) return 0; //数字じゃない
|
9
9
|
for(int j=0; j<i; j++) {
|
10
10
|
if(numbers[j] == numbers[i]) return 0; //同じ数字が2度以上
|
2
付け足し
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
入力とチェックを分けるとスッキリすると思います。
|
2
|
+
ついでには、果たして num 配列(や同様の変数)は int である必要があるのかどうか…。
|
2
3
|
|
3
4
|
```c
|
4
5
|
int isValidNumbers(char *numbers, int size) {
|
1
なぜか途中のが載ったので・・・
answer
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
入力とチェックを分けるとスッキリすると思います。
|
2
|
+
|
1
3
|
```c
|
2
|
-
int
|
4
|
+
int isValidNumbers(char *numbers, int size) {
|
3
5
|
if(strlen(numbers) != size) return 0; //過不足
|
4
6
|
for(int i=0; i<size; i++) {
|
5
7
|
if(numbers[i] < '0' || '9' < numbers[i]) return 0; //数字じゃない
|
@@ -14,7 +16,7 @@
|
|
14
16
|
char val[100];
|
15
17
|
while(1) {
|
16
18
|
scanf("%s", val);
|
17
|
-
if(
|
19
|
+
if(isValidNumbers(val, len)) break;
|
18
20
|
printf("やり直しです。 %d文字入力して下さい。 -> ",len);
|
19
21
|
}
|
20
22
|
for(int i=0; i<len; i++) num[i] = val[i] - '0';
|