141 lines
2.7 KiB
C
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");
|
|
|
|
}
|
|
|