Ceci est un code très simple pour débutant. Il utilise le principe du simple calcul sans passer par les combinaisons.
Bon prog!
Source / Exemple :
#include <stdio.h> //la bibliothèque standard
#include <stdlib.h> //bibliothèque de fonctions d'allocation
int entreedim();
int **matrice(int n,int m);
void entree ( int **a,int n,int m);
void affiche( int **a, int n);
void erreur (char *message);
int main()
{
int **a, n;
n = entreedim(); //entrer la dimension du triangle
a = matrice (n,n); //on travaille sous forme de matrice
entree ( a, n, n); //entrer les nombres
affiche (a, n); //affichage
return 0;
}
int entreedim()
{
int n;
printf("\n Entrer l'ordre du triangle:");
scanf("%d",&n); //saisie de la dimension
return n;
}
int **matrice(int n,int m)
{
int *bloc, **v;
int i;
bloc = (int **)calloc (n*m,sizeof(int *)); //allocation d'un long bloc
if (!bloc)
{
erreur("Erreur d'allocation du vecteur");
exit(1);
}
v = (int*)calloc(n,sizeof(int)); //découper le bloc en plusieurs vecteurs
if(!v)
{
erreur("Erreur de découpage du bloc");
exit(1);
}
for (i=0; i<n; i++) //attribuer chaque vecteur en une colone de matrice
v[i] = &bloc[i*m];
return v;
}
void entree ( int **a,int n,int m)
{
int i,j;
for (i=0; i<n; i++)
{
a[i][0] = 1;
a[i][i] = 1;
}
for (i=1; i<n; i++)
{
for (j=1; j<=i; j++)
{
a[i][j] = a[i-1][j-1] + a[i-1][j]; //Selon le bon vieux principe arithmétique
}
}
}
void affiche( int **a, int n)
{
int i,j;
for (i=0; i<n; i++)
{
for (j=0; j<=i; j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
void erreur(char *message) //Pour les messages d'erreurs
{
printf("%s",message);
}
Conclusion :
Toute modification sera la bienvenue., surtout pour y ajouter une interface graphique.Merci!
aliaz_li@yahoo.fr
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.