Vous êtes sur la page 1sur 4

Exercice 1 :

Exercice 2 :
#include <stdio.h>
#define dim 5
int main() {
int tableau[dim];
int *p = tableau; // initialisation du pointeur p avec l'adresse du premier
élément du tableau
int somme = 0;
// Remplir le tableau avec des valeurs saisies par l'utilisateur
printf("Entrez %d entiers:\n", dim);
for (int i = 0; i < dim; i++) {
scanf("%d", p); // équivalent à scanf("%d", &tableau[i])
p++; // déplacement du pointeur p vers l'élément suivant du tableau
}
// Calculer la somme des éléments du tableau en utilisant le pointeur
p = tableau; // réinitialisation du pointeur p avec l'adresse du premier
élément du tableau
for (int i = 0; i < dim; i++) {
somme += *p; // équivalent à somme += tableau[i]
p++; // déplacement du pointeur p vers l'élément suivant du tableau
}
printf("La somme des elements du tableau est: %d\n", somme);
return 0;
}
Exercice 3 :
#include <stdio.h>
int main() {
float tab[10];
int i, cpt = 0;
float nb;
float *p;
// Initialisation du pointeur sur le tableau
p = tab;
// Saisie des 10 nombres réels
printf("Saisissez 10 nombres réels :\n");
for(i = 0; i < 10; i++) {
scanf("%f", p);
p++;
}
// Affichage du tableau
printf("\nLe tableau saisi est : \n");
p = tab;
for(i = 0; i < 10; i++) {
printf("%.2f ", *p);
p++;
}
// Saisie du nombre à rechercher
printf("\n\nEntrez un nombre à rechercher : ");
scanf("%f", &nb);
// Recherche du nombre d'occurrence du nombre à rechercher
p = tab;
for(i = 0; i < 10; i++) {
if(*p == nb) {
cpt++;
}
p++;
}
// Affichage du nombre d'occurrence du nombre à rechercher
printf("\nLe nombre %.2f a été trouvé %d fois dans le tableau.", nb, cpt);
return 0;
}
Exercice 4 :
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int A[MAX_SIZE], B[MAX_SIZE];
int N, M, i, j;
// Lecture des dimensions des tableaux
printf("Entrez la dimension N du tableau A : ");
scanf("%d", &N);
printf("Entrez la dimension M du tableau B : ");
scanf("%d", &M);
// Lecture des éléments du tableau A
printf("Entrez les éléments du tableau A :\n");
for (i = 0; i < N; i++) {
scanf("%d", &A[i]);
}
// Lecture des éléments du tableau B
printf("Entrez les éléments du tableau B :\n");
for (j = 0; j < M; j++) {
scanf("%d", &B[j]);
}
// Ajout des éléments de B à la fin de A en utilisant des pointeurs
int *ptrA = A + N; // Initialisation du pointeur ptrA à la fin du tableau A
int *ptrB = B; // Initialisation du pointeur ptrB au début du tableau B
while (ptrB < B+M) { // Parcours des éléments de B avec ptrB
*ptrA = *ptrB; // Copie de l'élément pointé par ptrB à la position pointée
par ptrA
ptrA++; // Déplacement de ptrA à la position suivante
ptrB++; // Déplacement de ptrB à la position suivante
}
// Affichage du tableau A résultant
printf("Le tableau A après l'ajout des éléments de B est :\n");
for (i = 0; i < N+M; i++) {
printf("%d ", A[i]);
}
printf("\n");
return 0;
}
Exercice 5 :
#include <stdio.h>
int main()
{
int lig, col;
printf("Entrer le nombre de lignes de la matrice : ");
scanf("%d", &lig);
printf("Entrer le nombre de colonnes de la matrice : ");
scanf("%d", &col);
int mat[lig][col];
int *p = &mat[0][0]; // Initialisation du pointeur
printf("Entrer les elements de la matrice : \n");
for(int i=0; i<lig; i++) {
for(int j=0; j<col; j++) {
scanf("%d", (p + i*col + j)); // Lire les éléments de la matrice en
utilisant l'arithmétique des pointeurs OU(*(mat + i) + j))
}
}
printf("Elements de la matrice :\n");
for(int i=0; i<lig; i++) {
for(int j=0; j<col; j++) {
printf("%d ", *(p + i*col + j)); // Afficher les éléments de la
matrice en utilisant l'arithmétique des pointeurs OU *(*(mat + i) + j))
}
printf("\n");
}
return 0;
}
Exercice 6 :
#include <stdio.h>
main()
{
/* Déclarations */
int A[50][50]; /* matrice */
int N, M; /* dimensions de la matrice */
int I, J; /* indices courants */
/* Saisie des données */
printf("Nombre de lignes (max.50) : ");
scanf("%d", &N );
printf("Nombre de colonnes (max.50) : ");
scanf("%d", &M );
/* Lecture de la matrice au clavier */
for (I=0; I<N; I++)
for (J=0; J<M; J++)
{
printf("Elément[%d][%d] : ",I,J);
scanf("%d", (int *)A+I*50+J);
}
/* a) Affichage de la matrice */
printf("Matrice donnée :\n");
for (I=0; I<N; I++)
{
for (J=0; J<M; J++)
printf("%7d", *((int *)A+I*50+J));
printf("\n");
}
/* b) Affichage de la transposée de A */
printf("Matrice transposée :\n");
for (J=0; J<M; J++)
{
for (I=0; I<N; I++)
printf("%7d ", *((int *)A+I*50+J));
printf("\n");
}
/* c) Interprétation de la matrice comme vecteur : */
/* Attention, ce serait une faute grave d'afficher */
/*'simplement' les NxM premiers éléments de A ! */
printf("Matrice affichée comme vecteur :\n");
for (I=0; I<N; I++)
for (J=0; J<M; J++)
printf(" %d ", *((int *)A+I*50+J));
printf("\n");
return (0);
}

Vous aimerez peut-être aussi