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

回答編集履歴

11

修正

2016/11/29 06:43

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -136,7 +136,9 @@
136
136
  elseif(i < 2)
137
137
  {
138
138
  // 2枚目として処理
139
- if(!(a<0.5 || b<0.5))
139
+ if(a<0.5 || b<0.5)
140
+        i = 0;
141
+ else
140
142
  i++
141
143
  }
142
144
  else

10

修正

2016/11/29 06:43

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -103,7 +103,9 @@
103
103
 
104
104
  ###追記
105
105
  ```
106
+ int gazousyori(int);
107
+
106
- int gazousyori(number)
108
+ int gazousyori(int number)
107
109
  {
108
110
  if(number<30)
109
111
  {

9

修正

2016/11/29 06:41

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -121,7 +121,7 @@
121
121
  int main()
122
122
  {
123
123
 
124
- int number; // 30枚の画像を走査するインデックス
124
+ int number=0; // 30枚の画像を走査するインデックス
125
125
  int i = 0; // 内枚目として処理するかのインデックス
126
126
  while(gazousyori(number++))
127
127
  {

8

修正

2016/11/29 06:40

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -113,7 +113,7 @@
113
113
  return 1;
114
114
  }
115
115
  else
116
- return -1;
116
+ return 0;
117
117
 
118
118
 
119
119
  }

7

ツイキ

2016/11/29 06:39

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -101,3 +101,51 @@
101
101
  }
102
102
  ```
103
103
 
104
+ ###追記
105
+ ```
106
+ int gazousyori(number)
107
+ {
108
+ if(number<30)
109
+ {
110
+ // 画像処理
111
+ //
112
+
113
+ return 1;
114
+ }
115
+ else
116
+ return -1;
117
+
118
+
119
+ }
120
+
121
+ int main()
122
+ {
123
+
124
+ int number; // 30枚の画像を走査するインデックス
125
+ int i = 0; // 内枚目として処理するかのインデックス
126
+ while(gazousyori(number++))
127
+ {
128
+ if(i < 1)
129
+ {
130
+ // 1枚目として処理
131
+ if(!(a<0.4 || b<0.4))
132
+ i++;
133
+ }
134
+ elseif(i < 2)
135
+ {
136
+ // 2枚目として処理
137
+ if(!(a<0.5 || b<0.5))
138
+ i++
139
+ }
140
+ else
141
+ {
142
+ // 3枚目として処理
143
+ if(!(a<0.4 && b<0.4))
144
+ printf("一致");
145
+
146
+ i = 0;
147
+ }
148
+ }
149
+
150
+ }
151
+ ```

6

修正

2016/11/29 06:19

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -101,51 +101,3 @@
101
101
  }
102
102
  ```
103
103
 
104
- ###追記
105
- ```
106
- int gazousyori(number)
107
- {
108
- if(number<30)
109
- {
110
- // 画像処理
111
- //
112
-
113
- return 1;
114
- }
115
- else
116
- return -1;
117
-
118
-
119
- }
120
-
121
- int main()
122
- {
123
-
124
- int number; // 30枚の画像を走査するインデックス
125
- int i; // 内枚目として処理するかのインデックス
126
- while(gazousyori(number++))
127
- {
128
- switch(i++)
129
- {
130
- case 0:// 1枚目
131
- if(a<0.4 || b<0.4)
132
- i = 0;
133
- break;
134
- case 1:// 2枚目
135
- if(a<0.5 || b<0.5)
136
- i = 0;
137
- break;
138
- default: // 3枚目
139
- if(a<0.4 && b<0.4)
140
- i = 0;
141
- else
142
- {
143
- printf("一致");
144
- i =0;
145
- }
146
- break;
147
- }
148
- }
149
-
150
- }
151
- ```

5

追記

2016/11/29 06:12

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -99,4 +99,53 @@
99
99
  printf("一致");
100
100
  number = 0;
101
101
  }
102
+ ```
103
+
104
+ ###追記
105
+ ```
106
+ int gazousyori(number)
107
+ {
108
+ if(number<30)
109
+ {
110
+ // 画像処理
111
+ //
112
+
113
+ return 1;
114
+ }
115
+ else
116
+ return -1;
117
+
118
+
119
+ }
120
+
121
+ int main()
122
+ {
123
+
124
+ int number; // 30枚の画像を走査するインデックス
125
+ int i; // 内枚目として処理するかのインデックス
126
+ while(gazousyori(number++))
127
+ {
128
+ switch(i++)
129
+ {
130
+ case 0:// 1枚目
131
+ if(a<0.4 || b<0.4)
132
+ i = 0;
133
+ break;
134
+ case 1:// 2枚目
135
+ if(a<0.5 || b<0.5)
136
+ i = 0;
137
+ break;
138
+ default: // 3枚目
139
+ if(a<0.4 && b<0.4)
140
+ i = 0;
141
+ else
142
+ {
143
+ printf("一致");
144
+ i =0;
145
+ }
146
+ break;
147
+ }
148
+ }
149
+
150
+ }
102
151
  ```

4

修正

2016/11/29 06:10

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -88,9 +88,15 @@
88
88
 
89
89
  if(a>0.4 && b>0.4)
90
90
  {
91
- printf("一致");
91
+ number++;
92
92
  }
93
+ else
94
+ {
95
+ number = 0;
96
+ continue;
97
+ }
93
98
 
99
+ printf("一致");
94
100
  number = 0;
95
101
  }
96
102
  ```

3

追記

2016/11/29 05:30

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -58,4 +58,39 @@
58
58
  }
59
59
  return 0;
60
60
  }
61
+ ```
62
+
63
+ ```
64
+
65
+ 質問に追記されている条件を使うなら、ただし画像が30枚というのがどのように管理されているかわからないのでwhileの条件は日本語になっている、またnumberで1枚目なのか2枚目なのか3枚目なのか判断しているが使い道がわからないのでインクリメントとクリアしているだけですが、、
66
+ int number = 0;// 何枚目?
67
+ while(画像が30枚の最後に辿り着くまで)
68
+ {
69
+ if(a>0.4 && b>0.4)
70
+ {
71
+ number++;
72
+ }
73
+ else
74
+ {
75
+ number = 0;
76
+ continue;
77
+ }
78
+
79
+ if(a>0.5 && b>0.5)
80
+ {
81
+ number++;
82
+ }
83
+ else
84
+ {
85
+ number = 0;
86
+ continue;
87
+ }
88
+
89
+ if(a>0.4 && b>0.4)
90
+ {
91
+ printf("一致");
92
+ }
93
+
94
+ number = 0;
95
+ }
61
96
  ```

2

追記

2016/11/29 05:28

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -29,4 +29,33 @@
29
29
 
30
30
  return 0;
31
31
  }
32
+ ```
33
+
34
+ ##追記
35
+ ```
36
+ int main(){
37
+ int arr30[30] = {4,7,6,3,4,9,7,3,2,9,4,7,3,1,2,4,6,7,6,8,0,8,5,4,2,4,2,5,6,8};
38
+ int *p;
39
+ p = arr30;
40
+
41
+ int i=0; // 何枚目?
42
+ int arusuji = 5;
43
+
44
+ while(p<=&arr30[29])
45
+ {
46
+ if(i++<2)
47
+ {// 1 or 2 枚目の処理
48
+ if(*p++<arusuji)
49
+ i = 0;//1枚目に戻す
50
+ }
51
+ else
52
+ {// 3枚目の処理
53
+ if(*p++>=arusuji)
54
+ printf("一致\n");
55
+
56
+ i = 0;//3枚目の処理が終われば無条件に1枚目に戻す
57
+ }
58
+ }
59
+ return 0;
60
+ }
32
61
  ```

1

追記

2016/11/29 05:20

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -1,1 +1,32 @@
1
- continueを使うのはどうですか?
1
+ continueを使うのはどうですか?
2
+
3
+ ###追記
4
+ こんなの?
5
+ ```
6
+ int main(){
7
+ // 1-30枚の画像(number)
8
+ int arr30[30] = {4,7,6,3,4,9,7,3,2,9,4,7,3,1,2,4,6,7,6,8,0,8,5,4,2,4,2,5,6,8};
9
+ // ある数字とりあえず5とする
10
+ int arusuji = 5;
11
+ int i;
12
+
13
+ for(i=0;i<30;i+=3)
14
+ {
15
+ if(arr30[i]<arusuji)
16
+ {
17
+ // 1枚目がある数字より小なので次のループへ
18
+ continue;
19
+ }
20
+ if(arr30[i+1]<arusuji)
21
+ {
22
+ // 2枚目がある数字より小なので次のループへ
23
+ continue;
24
+ }
25
+
26
+ if(arr30[i+2]>=arusuji)
27
+ printf("一致");
28
+ }
29
+
30
+ return 0;
31
+ }
32
+ ```