Exercice langage C: Les méthodes de saisie


Exercice 1 :



Saisir un texte.
Ranger les caractères en mémoire.
Lire le contenu de la mémoire et y compter le nombre d'espaces et de lettres e .


Exercice 2 :



Saisir 6 entiers et les ranger à partir de l'adresse adr_deb.
Rechercher le maximum, l'afficher ainsi que son adresse.



Exercice 1 :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include 
#include 
#include 
void main()
{
char *adr_deb,c;
int i,imax,compt_e = 0,compt_sp = 0;
adr_deb = (char*)malloc(30);/* texte d'au plus 30 caracteres */

/* saisie et rangement du texte */
printf("\nADRESSE DU TEXTE: %p (ATTRIBUEE PAR LE COMPILATEUR)",adr_deb);
printf("\nENTRER UN TEXTE: ");
for (i=0;((c=getchar())!='\n');i++) *(adr_deb + i) = c;
imax = i;/* borne superieure */

/* lecture de la memoire et tri */
for (i=0;i<imax;i++)
       {
       c = *(adr_deb+i);
       printf("\nCARACTERE: %c ADRESSE: %p",c,adr_deb+i);
       if (c= ='e') compt_e++;
       if (c= =' ') compt_sp++;
       }

/* resultats */
printf("\nNOMBRE DE e: %2d NOMBRE d'espaces: %2d\n",compt_e,compt_sp);
free(adr_deb);
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}

Exercice 2 :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include  
#include 
#include 
void main()
{
int *adr_deb,*adr_max,i,imax=6,max;
adr_deb=(int*)malloc(4*6);
printf("\nADRESSE DE BASE: %p (CHOISIE PAR LE PROGRAMMEUR)\n",adr_deb);
/* saisie des nombres */
printf("SAISIE DES NOMBRES: \n");
for(i=0;i<imax;i++)
{
       printf("ENTRER UN NOMBRE: ");
       scanf("%d",adr_deb+i);
       }

/* tri */
max = *adr_deb;
adr_max = (int*)adr_deb;
for(i=0;i<imax;i++)
{
if(*(adr_deb+i)>max)
       {
       max = *(adr_deb+i);
       adr_max =  adr_deb+i;
       }
}
/* resultats */
printf("LE MAXIMUM:%d  SON ADRESSE:%p\n",max,adr_max);
free(adr_deb);
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE");
getch();
}