apl/APL1.2/1.Allocation_dynamique/source/Singleton.c
unknown d9949b5cb0 a
2022-01-14 06:54:18 +01:00

141 lines
2.7 KiB
C

#include<stdio.h>
#include<stdlib.h>
/*---------------------PROTOTYPE---------------------------------------------*/
int nombreSingletonTableau(double tableau[], int tailleTableau);
void valeurSingleton(double tableau[], double tableauFinal[], int tailleTableau, int tailleTableauFinal);
void afficheTableau(double tableau[], int tailleTableau);
/*-------------------------------MAIN----------------------------------------------------*/
int main(void){
double *tableau=NULL, *tableauFinal=NULL;
int compteur=0, reponse=0, compteurBis=0, tailleTableauFinal;
printf("Veuillez entrez le nombre de réel que vous allez entrez : ");
scanf("%d", &reponse);
tableau=(double*) malloc(reponse*sizeof(double));
for(compteur=0;compteur<reponse;compteur++){
printf("Veuillez entrez le reel %d/%d\n",compteur+1, reponse);
scanf("%lf", &tableau[compteur]);
}
tailleTableauFinal = nombreSingletonTableau(tableau,reponse);
printf("Il y'a %d Singleton\n\nCes derniers sont : \n\n",tailleTableauFinal);
tableauFinal=malloc(tailleTableauFinal*sizeof(double));
valeurSingleton(tableau, tableauFinal, reponse, tailleTableauFinal);
afficheTableau(tableauFinal, tailleTableauFinal);
free(tableau);
free(tableauFinal);
printf("\nAu revoir\n");
return EXIT_SUCCESS;
}
/*---------------------------------------------------FONCTIONS---------------------------------------------------------------------*/
int nombreSingletonTableau(double tableau[], int tailleTableau){
int compteur=0, compteurBis=0, compteurCase=0 , nombreSingleton=0;
for(compteur=0;compteur<tailleTableau;compteur++){
compteurCase=1; /*1 represente la case en question elle meme */
for(compteurBis=0;compteurBis<tailleTableau;compteurBis++){
if(tableau[compteur]!=tableau[compteurBis] && compteur!=compteurBis){
compteurCase++;
}
}
if(compteurCase == tailleTableau){
nombreSingleton++;
}
}
return nombreSingleton;
}
void valeurSingleton(double tableau[], double tableauFinal[], int tailleTableau, int tailleTableauFinal ){
int compteur=0, compteurBis=0, compteurCase=0 , caseTableauFinal=0;
for(compteur=0;compteur<tailleTableau;compteur++){
compteurCase=1; /*1 represente la case en question elle meme */
for(compteurBis=0;compteurBis<tailleTableau;compteurBis++){
if(tableau[compteur]!=tableau[compteurBis] && compteur!=compteurBis){
compteurCase++;
}
}
if(compteurCase == tailleTableau){
tableauFinal[caseTableauFinal++]=tableau[compteur];
}
}
}
void afficheTableau(double tableau[], int tailleTableau){
int compteur=0;
for(compteur=0;compteur<tailleTableau;compteur++){
printf("%lf ", tableau[compteur]);
}
printf("\n");
}