À chaque étape de programmation, vous devez vérifier si le programme :

Pour compiler un programme, on utilise l’instruction suivante :
gcc -Wall exo.c -o nomExecutable
Pour executer un programme, on utilise l’instruction suivante :
./nomExecutable
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("Les tableaux en C \n");
return 0;
}/* Auteur : Inès de Courchelle */
/* Date : 12/11/25 */
/* Résumé : créer un tableau aleatoire contenant des valeurs entre 0 et 10 */
/* Entrée(s) : le tableau et le nombre de case que l'on souhaite mettre */
/* Sortie(s) : aucune */
void aleatoire(int monTab[N], int taille);/* Auteur : */
/* Date : */
/* Résumé : affiche un tableau 1D */
/* Entrée(s) : un tableau 1D, et la taille du tableau */
/* Sortie(s) : aucune */
void afficherTableau(int monTab[N], int taille);/* Auteur : */
/* Date : */
/* Résumé : predicat permettant de savoir si un tableau contient des entiers du même signes */
/* Entrée(s) : un tableau 1D, et la taille du tableau */
/* Sortie(s) : 1 => Vrai si tous les entiers sont du même signe et 0 => FAUX s'ils ne sont pas du même signe */
int estDuMemeSigne(int monTab[N],int taille);Un carré magique d’ordre n est un tableau n x n tel que la somme des entiers de chaque ligne, chaque colonne et des deux diagonales est identique.
Exemple : Tableau carré magique d’ordre 3

Créer les fichiers carre.c, carre.h et main.c et le makefile associé.
Ajouter dans le programme principal la définition d’une matrice déjà remplie
int tab[3]={8, 1, 6};Attention Il faut le faire la déclaration et l’affectation en même temps, sinon ça ne marche pas.
int carre[3][3]=
{
{8, 1, 6},
{3, 5, 7},
{4, 9, 2}
};Attention Il faut le faire la déclaration l’affectation en même temps, sinon ça ne marche pas.
/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
void afficherTableau(int carre[N][N], int taille);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
int cptLigne(int carre[N][N],int ligne, int taille);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
int cptColonne(int carre[N][N],int colonne,int taille);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
int cptDiag1(int carre[N][N],int taille);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
int cptDiag2(int carre[N][N],int taille);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
int estMagique(int carre[N][N], int taille);Créer les fichiers morpion.c, morpion.h et main.c et le makefile associé.
Créer une procédure initGrille qui permet d’initialiser la grille, lorsqu’aucun joueur n’a joué. Elle contiendra uniquement la valeur -1
/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
void initTableau(int grille[N][N], int taille);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
void afficherGrille(int grille[N][N], int taille);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
void tour2jeu(int grille[N][N],int joueur);/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
int aGagne (int grille[N][N], int joueur,int taille);