- 656 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:53:40 ]
- >>654
無理やり1レスにまとめたからいろいろ足りないけど #include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE 10 char hai[SIZE][SIZE], check[SIZE][SIZE]; int f(int x, int y, int n) { if(check[x][y] || hai[x][y]!=n) return 0; check[x][y] = 1; return 1 + f(x, (y+1)%SIZE, n) + f(x, (y+SIZE-1)%SIZE, n) + f((x+1)%SIZE, y, n) + f((x+SIZE-1)%SIZE, y, n); } int main(void) { int i, j, c[2][50] = {0}, count[2] = {0}; srand(time(NULL)); for(i=0; i<SIZE; i++) for(j=0; j<SIZE; j++) hai[i][j] = rand()%2+1; for(i=0; i<SIZE; i++) { for(j=0; j<SIZE; j++) { int n = f(i, j, hai[i][j]); if(n) c[hai[i][j]-1][count[hai[i][j]-1]++] = n; } } for(i=0; i<2; i++) { printf("%d : ", i+1); for(j=0; j<count[i]; j++) printf("%d ", c[i][j]); putchar('\n'); } return 0; }
|

|