13.82576% bizarre ... vu que je me suis amusé à faire ca ...
je vous rassure tout de suite, seul les pires d'entre vous reconaitrons tout de suite ...
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAX_NOM 125
enum statusGeek{Geekish_Tendencies,Geek,Total_Geek,Major_Geek,Super_Geek,Extreme_Geek,Geek_God,Dysfunctional_Geek};
struct Geek
{
char name[MAX_NOM];
int age;
double score;
enum statusGeek status;
};
void creerCadre(char *texte);
struct Geek calculateRank(void);
void afficherGeek(struct Geek myGeek);
/*
main : fonction principale
*/
int main(char * argv[],int argc)
{
creerCadre("Rank My Geekiness");
afficherGeek(calculateRank());
system("PAUSE");
return EXIT_SUCCESS;
}
void creerCadre(char *texte)
{
int length = strlen(texte);
int i;
// deco correspond à un caractere ASCII
int deco = 177;
// 1er ligne
for (i=0;i<length+4;i++)
{
printf("%c",deco);
}
// texte
printf("\n%c %s %c\n",deco,texte,deco);
// 2eme ligne
for (i=0;i<length+4;i++)
{
printf("%c",deco);
}
printf("\n");
}
struct Geek calculateRank(void)
{
struct Geek geek;
printf("Enter your name :");
gets(geek.name);
fflush(stdin);
printf("Enter your age : ");
scanf("%d",&geek.age);
fflush(stdin);
printf("Enter your score(%%) :");
scanf("%lf",&geek.score);
fflush(stdin);
// test de la valeur et affection du status % au ranking ...
// pas tres optimisé dans ce cas ci mais hé fô pas poussé
if(geek.score>=0.9)
geek.status= Geekish_Tendencies;
if(geek.score >=15)
geek.status= Geek;
if(geek.score >=25)
geek.status= Total_Geek;
if(geek.score >=35)
geek.status= Major_Geek;
if(geek.score >=45)
geek.status= Super_Geek;
if(geek.score >=55)
geek.status= Extreme_Geek;
if(geek.score >=65)
geek.status= Geek_God;
if(geek.score >=75)
geek.status= Dysfunctional_Geek;
return geek;
}
void afficherGeek(struct Geek myGeek)
{
char status[125];
printf("\nNom du Geek : %s , age : %d\n",myGeek.name,myGeek.age);
switch(myGeek.status)
{
case Geekish_Tendencies :
strcpy(status,"Tendance Geek");
break;
case Geek :
strcpy(status,"Geek");
break;
case Total_Geek :
strcpy(status,"Geek Totale");
break;
case Major_Geek :
strcpy(status,"Major Geek");
break;
case Super_Geek :
strcpy(status,"Super Geek");
break;
case Extreme_Geek :
strcpy(status,"Geek extreme");
break;
case Geek_God :
strcpy(status,"Dieu Geek");
break;
case Dysfunctional_Geek :
strcpy(status,"Geek de fou furieux");
break;
}
printf("Status :\n");
creerCadre(status);
}
/* no comment -.- */
ps : il n'est même pas optimisé ni sécurisé , et je n'utilise pas les pointeurs % struct , si ya plus geek il peut s'amuser , pour moi le C est loin (très loin ! )