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

回答編集履歴

3

変数名変更

2022/01/02 07:52

投稿

jimbe
jimbe

スコア13355

answer CHANGED
@@ -2,9 +2,9 @@
2
2
  ついでには、果たして num 配列(や同様の変数)は int である必要があるのかどうか…。
3
3
 
4
4
  ```c
5
- int isValidNumbers(char *numbers, int size) {
5
+ int isValidNumbers(char *numbers, int requiredSize) {
6
- if(strlen(numbers) != size) return 0; //過不足
6
+ if(strlen(numbers) != requiredSize) return 0; //過不足
7
- for(int i=0; i<size; 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

付け足し

2022/01/02 07:52

投稿

jimbe
jimbe

スコア13355

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

なぜか途中のが載ったので・・・

2022/01/02 07:48

投稿

jimbe
jimbe

スコア13355

answer CHANGED
@@ -1,5 +1,7 @@
1
+ 入力とチェックを分けるとスッキリすると思います。
2
+
1
3
  ```c
2
- int checkValidNumbers(char *numbers, int size) {
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(checkValidNumbers(val, len)) break;
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';