#include #include int main() { int n, i, j, k, l, m, thet = 0; char buf[256]; char triangle[200][256]; int maxnum, maxlin, leo, len; char *a; char *b; char pattern[256]; FILE* fp = fopen("triangle.in", "r"); for (;;) { thet++; fscanf(fp, "%d\n", &n); if (n == 0) break; maxnum = 0; maxlin = -1; for (i=0; i= 0) && (k < 2*n - 1) && (k <= (j + len)); k++) { if (triangle[i + len][k] != '-') goto bad1; } if (!(k >= 0) || !(k < 2*n - 1)) goto bad1; } bad1: if (maxnum < len) { maxnum = len; } } } for (i = 0; i < n; i++) strcpy(triangle[2*n-i-1], triangle[i]); for (i = 0; i < n; i++) { strcpy(triangle[i], triangle[i + n]); } for (i=0; i= 0) && (k < 2*n - 1) && (k <= (j + len)); k++) { if (triangle[i + len][k] != '-') goto bad2; } if (!(k >= 0) || !(k < 2*n - 1)) goto bad2; } bad2: if (maxnum < len) { maxnum = len; } } } printf("Triangle #%d\nThe largest triangle area is %d.\n\n", thet, (maxnum) * (maxnum)); } /* for (i=0; i (1+2*i)) len = 1+2*i; while (len > maxnum) { if (len > 1) { memset(pattern, '-', (len-2)*sizeof(char)); pattern[len-1] = '\0'; if ((i > 0) && (strstr(triangle[i-1], pattern)) { for (k = i-1; len-- } else { maxlin = i; maxnum = olen; #endif