Problème 1 - Générateur de mot de passe# Énoncé Écrire un programme qui permet de générer des mots de passe aléatoires. Générateur de mot. On choisit le nombre de caractères On choisit les caractères au hazard Solution #include <stdio.h> #include <stdlib.h> #include <time.h> #define MIN 8 #define MAX 15 #define BEGIN 48 // code ASCII du caractère 0 #define END 122 // code ASCII du caractère z char TirerUnCaractere(void) { int code; char car; // On tire un nombre entre code = rand()%(END-BEGIN+1)+BEGIN; // Conversion du code en caractère car = code; return car; } void GenererPassword() { char password[MAX]=""; int i,n, lg; // On tire un nombre entre 8 et 15, taille du mot de passe n = rand()%(MAX-MIN+1)+MIN; for(i=0;i<n;i++) { password[i] = TirerUnCaractere(); } printf("Longueur: %d\tMot de passe: %s\n", n, password); } int main() { int i; srand(time(NULL)); printf("******************************\n"); printf("* Générateur de mot de passe *\n"); printf("******************************\n"); for(i=0;i<10;i++) { GenererPassword(); } printf("** FIN **\n"); return 0; } Problème 2 - Le problème du Palindrome# Énoncé Écrire un programme qui demande à l'utilisateur de saisir une chaîne de caractère et qui lui indique ensuite si la chaîne de caractère est un palindrome ou non. Rappel: Un palindrome de lettres est une figure de style désignant un mot ou une phrase dont l'ordre des lettres reste le même qu'on les lise de gauche à droite ou de droite à gauche, comme dans la phrase « Ésope reste ici et se repose » ou encore « La mariée ira mal » à un accent près. Solution Nous allons écrire une fonction EstPalindrome qui prend en entrée une chaîne de caractères et qui évalue s'il s'agit d'un palindrome ou non. int EstPalindrome(char *chaine) { int oui=1, n, i; n=strlen(chaine); i=0; while(oui && i<n) { if(*(chaine+i)!=(*(chaine+n-1-i))) { oui=0; } i++; } return oui; } Programme complet // Bibliothèques #include <stdio.h> #include <stdlib.h> #include <string.h> // Constantes #define MAX 100 // Fonctions void SaisirChaineDeCaracteres(char *chaine) { printf(">>>"); scanf("%s", chaine); } int EstPalindrome(char *chaine) { int oui=1, n, i; n=strlen(chaine); i=0; while(oui && i<n) { if(*(chaine+i)!=(*(chaine+n-1-i))) { oui=0; } i++; } return oui; } int main() { // Prototypes void SaisirChaineDeCaracteres(char *); int EstPalindrome(char *); char motLu[MAX]; printf("Entrer une chaîne de caractère\n"); SaisirChaineDeCaracteres(motLu); printf("Test Palindrome: %d\n", EstPalindrome(motLu)); return 0; } Par convention, on écrit les noms des constantes en majuscules.