Etudes/Premiere annee/PointeursMois/biblio.c

153 lines
3.0 KiB
C
Raw Normal View History

2016-10-14 13:21:09 +00:00
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define NBMOIS 12
#define TAILLEMAX 50
char* moisNom(int numeroMois){
char *mois[NBMOIS] = {"Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre"};
char *moisRetour;
numeroMois--;
moisRetour = (char*)malloc( ( strlen(mois[numeroMois])+1) * sizeof(char));
strcpy(moisRetour, mois[numeroMois]);
return moisRetour;
}
char* supprimerE(char chaine[]){
int boucle;
int boucleSensE = 0;
int nbE = 0;
char *sensE;
for(boucle = 0; boucle < strlen(chaine); boucle++){
if(chaine[boucle] == 'e'){
nbE++;
}
}
sensE = (char*)malloc( ( strlen(chaine)-nbE+1) * sizeof(char));
for(boucle = 0; boucle < strlen(chaine); boucle++){
if(chaine[boucle] != 'e'){
sensE[boucleSensE] = chaine[boucle];
boucleSensE++;
}
}
return sensE;
}
char* saisirChaine(char *message){
char *nom;
char buffer[TAILLEMAX];
printf("%s", message);
scanf("%s", buffer);
nom = (char*) malloc((strlen(buffer)+1)*sizeof(char));
strcpy(nom, buffer);
return nom;
}
void swapFloat(float *ptr1, float *ptr2){
float tmp;
tmp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = tmp;
}
void discriminant(float a, float b, float c, float *racine1, float *racine2, int *printResult){
int delta;
delta = b*b - 4*a*c;
if(delta >= 0){
*racine1 = ((-b - sqrt(delta)) / (2*a));
*racine2 = ((-b + sqrt(delta)) / (2*a));
*printResult = 1;
}
}
void exercice1(){
int choix;
char *pointeur;
printf("De quel mois voulez-vous le nom ? (Entre 1 et 12)\n");
scanf("%d", &choix);
pointeur = moisNom(choix);
printf("%s", pointeur);
}
void exercice2(){
char chaine[TAILLEMAX];
char *pointeur;
printf("Saisissez une chaine de caractère :");
scanf("%s", chaine);
pointeur = supprimerE(chaine);
printf("%s", pointeur);
}
void exercice3(){
char *nom;
nom = saisirChaine("Comment vous appelez-vous ?");
printf("Vous vous appelez %s.\n", nom);
}
void exercice4(){
float val1;
float val2;
printf("Saisissez deux réels.\n");
printf("1: ");
scanf("%f", &val1);
printf("2: ");
scanf("%f", &val2);
printf("Avant le changement:\n");
printf("Val1 = %.2f \tVal2 = %.2f\n", val1, val2);
swapFloat(&val1, &val2);
printf("Après le changement:\n");
printf("Val1 = %.2f \tVal2 = %.2f", val1, val2);
}
void exercice5(){
float a;
float b;
float c;
float racine1;
float racine2;
int printResult = 0;
printf("Calcul de discriminant.\n");
printf("a: ");
scanf("%f", &a);
printf("b: ");
scanf("%f", &b);
printf("c: ");
scanf("%f", &c);
discriminant(a, b, c, &racine1, &racine2, &printResult);
if(printResult){
printf("%f\t%f", racine1, racine2);
}else{
printf("Aucune racine.");
}
}