Tableau[10][10] de Pascal probleme d'affichage et evolution
Bonjour je débute en info et donc en C et C++, poursuivant une formation TSAII.
Je travaille actuellement sur le passage de l'algorithme au programme. L'un des exercices est sur l'affichage du triangle de Pascal.
J'ai réussi à le faire mais l'affichage est loin d'être satisfaisant. Pourriez vous m'orienter svp. Voici le code:
Code:
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
|
#include <iostream>
#include <stdio.h>
#include <conio.h>
int main (void)
{
//Title
printf("\n ********** TRIANGLE DE PASCAL********** \n");
//Declaration des Valeurs
int Redo,i,j,N;
int TabPas[10][10];
//Execution
Redo=0; //Initialisation de la boucle
do
{
printf("\n Entrer un exposant N: ");
scanf("%i",&N);
for (i=0; i<=N-1; i++)
{
for (j=0; j<=N-1; j++)
{
TabPas[i][j]=0;
TabPas[i][0]=1;
}
}
for (i=1; i<=N-1; i++)
{
for (j=1; j<=N-1; j++)
{
TabPas[i][j]=TabPas[i-1][j-1]+TabPas[i-1][j];
}
}
for (i=0; i<=N-1; i++)
{
for (j=0; j<=N-1; j++)
{
printf("%i",TabPas[i][j]);
}
printf("\n");
}
printf("\n Voulez vous recommencer? (1/0) \n");
scanf("%i",&Redo);
}
while(Redo!=0);
return 0;
} |
J'ai aussi voulu optimiser le programme, en faisant en sorte que la taille du tableau soit variable pour entrer un entier N variable positif sans limite supérieur. Je me sert, du moins j'essaye de me servir du malloc mais là sa bloc. je crois que je ne le déclare pas correctement. voici le code:
Code:
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
| #include <iostream>
#include <stdio.h>
#include <conio.h>
int main (void)
{
//Title
printf("\n ********** TRIANGLE DE PASCAL********** \n");
//Declaration des Valeurs
int Redo,i,j,N;
int* TabPas[N]=NULL;
//Execution
Redo=0; //Initialisation de la boucle
do
{
printf("\n Entrer un exposant N: ");
scanf("%i",&N);
TabPas[i][j]={malloc(N*sizeof(int))};
for (i=0; i<=N-1; i++)
{
for (j=0; j<=N-1; j++)
{
TabPas[i][j]=0;
TabPas[i][0]=1;
}
}
for (i=1; i<=N-1; i++)
{
for (j=1; j<=N-1; j++)
{
TabPas[i][j]=TabPas[i-1][j-1]+TabPas[i-1][j];
}
}
for (i=0; i<=N-1; i++)
{
for (j=0; j<=N-1; j++)
{
printf("%i",TabPas[i][j]);
}
printf("\n");
}
printf("\n Voulez vous recommencer? (1/0) \n");
scanf("%i",&Redo);
}
while(Redo!=0);
return 0;
} |
Merci d'avance.
MS