l'exercice doit être fait avec des fonctions et on peut initialiser un tab[8][50] ou autre avec un nombre de colonnes elevé mais 8 lignes et on n'utilise pas l'entiérete du tableau donc on doit se déplacer avec les pointeurs pour regarder les i et les j et voir si y a des 1.
un angle droit est constitué de 1 contigues et on compte pas le coin de l'angle droit constitué de 1



10111010.........nbre max colonnes....
01110110
10100111
10111111
01010100
10010010
11110110
01111101

le plus grand angle droit(un angle droit est constitué d'une série de 1 contigues) est en gras et se trouve dans l'exemple à la 3ème colonne et à la 3ème ligne (on commence les lignes à 0 et les colonnes à 0)et on ne compte le coin qui est [ et on compte pas la première case de l'angle droit
nombre lignes = 7
nbre colonnes = 50 ou maxcolonnes
tm = taille maximale mesurée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
#include <stdio.h>
#include <stdlib.h>
#define MAX 50
void fonctaffichtab (int *,int,int);
void fonctencodetab(int *,int,int);
int searchangle(int*,int,int,int*,int*);
int main()
{
 
 
int tab[MAX][MAX],nl,col,compt=0,lmax,cmax;
    printf("entrez nl : ");//nbl = 8
    scanf("%d",&nl);
    printf("entrez col : ");
    scanf("%d",&col);
 
 
 
 fonctencodetab(&tab[0][0],nl,col);
 fonctaffichtab(&tab[0][0],nl,col);
 compt=searchangle(&tab[0][0],nl,col,lmax,cmax);
 printf("salut%d",compt);
 
}
 void fonctencodetab(int *ptab,int nl,int col)
{
    int i,j;
 
    for(i=0;i<nl;i++)
    {
        for(j=0;j<col;j++,ptab++)
        {
            printf("Encodez le tableau (%d) (%d)",i+1,j+1);
            fflush(stdin);
            scanf("%d",ptab);
 
        }
        ptab = ptab + MAX - col;
    }
 
}
 
void fonctaffichtab(int *ptab,int nl,int col)
{
    int i,j;
 
    for(i=0;i<nl;i++)
    {
        for(j=0;j<col;j++,ptab++)
        {
 
            printf("%d ",*ptab);
 
        }
        ptab = ptab + MAX - col;
        printf("\n");
    }
 
}
 
 
int searchangle(int *ptab,int nl, int nc,int *lmax,int *cmax)
{
int i,j,taille,tm,cm,lm;
taille = -1;
for (i=0; i<(nl-taille);i++)
{
   for(j=0;j<(nl-taille);j++)
   {
      if(*ptab == 1)// coin d'un angle
      {
        taille = 0;
        while (((*ptab+taille+1)==1)&&((*ptab+(taille+1)*(*cmax)))&&((i+taille)<nl)&&((j+taille)<nl))
        {
             taille ++;
        }
          if (taille > tm)
          {
             tm = taille;
             cm = j;
             lm = i;
           }
        }
         ptab++;
    }
    *ptab=*ptab+ *cmax-nl;
}
   return tm;
   printf("%d",tm);
}