- #include <stdio.h>
- #include <conio.h>
- #define LG 128
- main()
- {
- int x[100]; /* tableau d'entiers */
- int i = 0; /* variable de controle */
- int last; /* Index de la derniere valeur saisie */
- int d; /* nombre de passages de tri */
- int k,j,z,ok; /*k,z et ok sont des variables de controles,et j un cpteur*/
- int temp; /* variable auxiliaire pour permutation */
- char reply; /* variable de contr0le */
- char ligne[LG+1]; /*tabeau recevant la saisie de l'utilisateur au clavier*/
-
- printf("Le programme saisit jusqu'à 100 entiers positifs compris entre \n"
- "0 et 30000 et les trie en ordre croissant ou décroissant (au choix).\n"
- "Fin par -1.\n\n");
- printf("Entrez les nombres positifs :\n\n");
-
- do
- {
- /*ici on controle si la valeur saisie est entiere et appatient à l'inteval
- voulu,sinon on genère un message d'erreur*/
- do{ ok=0;
- gets(ligne);
- for(j=0;j<strlen(ligne);j++)
-
- /*ceci protège contre la saisie des valeurs réelles*/
- if(ligne[j]=='.'){ok=1;printf("Saisie incorrecte!Recommencer SVP:\n");}
-
- k=sscanf(ligne,"%d", &x[ i ]);
-
- /*ceci protège contre une touche inattendue ou une valeur
- non compris dans l'interval voulu*/
-
- if(k!=1) {printf("Saisie incorrecte!Recommencer SVP:\n");ok=1;}
- else if(!(x[ i ]>=-1&&x[ i ]<=30000)){printf("Saisie incorrecte!Recommencer SVP:\n"); ok=1;}
-
- /*c'est le dernier test contre les données superflues du genre 25ff ou 2f*/
- if(ok==0)for (j=0;j<strlen(ligne);j++){z=ligne[j]-'1';
- if(!(z>=0&&z<10)&&x[i]!=-1&&ligne[j]!=32&&ligne[j]!='0')
- {ok=1;
- /*on vide*/
- for (j=0;j<strlen(ligne);j++)ligne[j]=' ';
- printf("Des données superflues saisies!\n");
- printf("Recommencer la précédente saisie\n");}
- }
-
- }while(ok);
-
- i++;
- } while (x[i-1] != -1 && i < 100);
-
- /*Rien n'est changé à ce niveau sauf le message sur le nombre des valeurs saisies*/
- if(i==100) printf("\nvous avez saisie %d valeurs",i);
- else printf("\nvous avez saisie %d valeurs",i-1);
- if (i == 100)
- last = i-1;
- else
- last = i-2;
-
- if (i == 2)
- printf("\n\nLe tableau ne contient que la valeur : %d\n\n", x[i-2]);
- else if (i > 2)
- {
-
- printf("\n\nLe tableau contient les valeurs :\n\n");
- for (i = 0; i <= last; i++)
- {
- printf("%d\t", x[ i ]);
- if (i && (!(i % 8)))
- printf("\n");
- }
-
- /*test de selection de choix*/
- do{ ok=0;
- printf("\n\nTri du tableau ?\n"
- "Ascendant = a Descendant = d Non = n : ");
- reply = getche();
- k=reply;
- if(k!='a'&&k!='d'&&k!='n'){ok=1;printf("\n\nchoix incorrect\n");}
- if(k=='n')printf("\n\nFIN DU PROGRAMME,Merçi :p).");
- }while(ok);
-
- switch (reply)
- {
- case 'a': for (d = last; d != 0; d--)
- for (i = 0; i < d; i++)
- if (x[ i ] > x[i+1])
- { /* on permute */
- temp = x[ i ];
- x[ i ] = x[i+1];
- x[i+1] = temp;
- }
- printf("\n\nLe tableau a été trié en ordre ascendant :\n\n");
- for (i = 0; i <= last; i++)
- {
- printf("%d\t", x[ i ]);
- if (i && (!(i % 8)))
- printf("\n");
- }
- break;
- case 'd': for (d = last; d != 0; d--)
- for (i = 0; i < d; i++)
- if (x[ i ] < x[i+1])
- {
- temp = x[ i ];
- x[ i ] = x[i+1];
- x[i+1] = temp;
- }
- printf("\n\nLe tableau a été trié en ordre descendant :\n\n");
- for (i = 0; i <= last; i++)
- {
- printf("%d\t", x[ i ]);
- if (i && (!(i % 8)))
- printf("\n");
- }
- }
- }
- }
-
#include <stdio.h>
#include <conio.h>
#define LG 128
main()
{
int x[100]; /* tableau d'entiers */
int i = 0; /* variable de controle */
int last; /* Index de la derniere valeur saisie */
int d; /* nombre de passages de tri */
int k,j,z,ok; /*k,z et ok sont des variables de controles,et j un cpteur*/
int temp; /* variable auxiliaire pour permutation */
char reply; /* variable de contr0le */
char ligne[LG+1]; /*tabeau recevant la saisie de l'utilisateur au clavier*/
printf("Le programme saisit jusqu'à 100 entiers positifs compris entre \n"
"0 et 30000 et les trie en ordre croissant ou décroissant (au choix).\n"
"Fin par -1.\n\n");
printf("Entrez les nombres positifs :\n\n");
do
{
/*ici on controle si la valeur saisie est entiere et appatient à l'inteval
voulu,sinon on genère un message d'erreur*/
do{ ok=0;
gets(ligne);
for(j=0;j<strlen(ligne);j++)
/*ceci protège contre la saisie des valeurs réelles*/
if(ligne[j]=='.'){ok=1;printf("Saisie incorrecte!Recommencer SVP:\n");}
k=sscanf(ligne,"%d", &x[ i ]);
/*ceci protège contre une touche inattendue ou une valeur
non compris dans l'interval voulu*/
if(k!=1) {printf("Saisie incorrecte!Recommencer SVP:\n");ok=1;}
else if(!(x[ i ]>=-1&&x[ i ]<=30000)){printf("Saisie incorrecte!Recommencer SVP:\n"); ok=1;}
/*c'est le dernier test contre les données superflues du genre 25ff ou 2f*/
if(ok==0)for (j=0;j<strlen(ligne);j++){z=ligne[j]-'1';
if(!(z>=0&&z<10)&&x[i]!=-1&&ligne[j]!=32&&ligne[j]!='0')
{ok=1;
/*on vide*/
for (j=0;j<strlen(ligne);j++)ligne[j]=' ';
printf("Des données superflues saisies!\n");
printf("Recommencer la précédente saisie\n");}
}
}while(ok);
i++;
} while (x[i-1] != -1 && i < 100);
/*Rien n'est changé à ce niveau sauf le message sur le nombre des valeurs saisies*/
if(i==100) printf("\nvous avez saisie %d valeurs",i);
else printf("\nvous avez saisie %d valeurs",i-1);
if (i == 100)
last = i-1;
else
last = i-2;
if (i == 2)
printf("\n\nLe tableau ne contient que la valeur : %d\n\n", x[i-2]);
else if (i > 2)
{
printf("\n\nLe tableau contient les valeurs :\n\n");
for (i = 0; i <= last; i++)
{
printf("%d\t", x[ i ]);
if (i && (!(i % 8)))
printf("\n");
}
/*test de selection de choix*/
do{ ok=0;
printf("\n\nTri du tableau ?\n"
"Ascendant = a Descendant = d Non = n : ");
reply = getche();
k=reply;
if(k!='a'&&k!='d'&&k!='n'){ok=1;printf("\n\nchoix incorrect\n");}
if(k=='n')printf("\n\nFIN DU PROGRAMME,Merçi :p).");
}while(ok);
switch (reply)
{
case 'a': for (d = last; d != 0; d--)
for (i = 0; i < d; i++)
if (x[ i ] > x[i+1])
{ /* on permute */
temp = x[ i ];
x[ i ] = x[i+1];
x[i+1] = temp;
}
printf("\n\nLe tableau a été trié en ordre ascendant :\n\n");
for (i = 0; i <= last; i++)
{
printf("%d\t", x[ i ]);
if (i && (!(i % 8)))
printf("\n");
}
break;
case 'd': for (d = last; d != 0; d--)
for (i = 0; i < d; i++)
if (x[ i ] < x[i+1])
{
temp = x[ i ];
x[ i ] = x[i+1];
x[i+1] = temp;
}
printf("\n\nLe tableau a été trié en ordre descendant :\n\n");
for (i = 0; i <= last; i++)
{
printf("%d\t", x[ i ]);
if (i && (!(i % 8)))
printf("\n");
}
}
}
}