400 Exercices Corrigés En C – Partie 17

La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec le langage C et programmation. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur le langage C et programmation. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!

Vous pouvez lire notre tutoriel sur le langage C avant de résoudre les exercices suivants.

 
 

 

181. Ecrivez un programme en C pour trouver la ligne avec le plus grand nombre de 1.

Exemple de sortie:

Le tableau 2D donné est : 
0 0 1 1 
0 0 1 1 
1 1 1 1
0 0 0 0 
L'index de la ligne avec le maximum de 1 est: 2
#include <stdio.h>
#include <stdbool.h> 

//Fonction qui renvoie l'index de la ligne avec le plus grand nombre de 1
int indexLigneAvecUn(bool matrice[4][4]) {
	int index = -1 ;
	int maxCount = 0 ;
	 
	/* Visitez chaque ligne. Compter le nombre de 1. Si le nombre est 
	supérieur au maxCount, actualiser le maxCount et stocker l'index 
	de la ligne actuelle dans la variable index. */
	for(int i = 0; i < 4; i++){
		int count = 0;
		for(int j = 0; j < 4; j++){
			if(matrice[i][j] == 1){
				count++ ;
			}
		}
		if(count > maxCount){
			maxCount = count;
			index = i ;
		}
	}                                                                                          
	return index;
}

int main()
{
	bool matrice[4][4] = {{0, 0, 1, 1},
					      {0, 1, 1, 1},
					      {1, 1, 1, 1},
					      {0, 0, 0, 0}};

	int index = indexLigneAvecUn(matrice);
	printf("L'index de la ligne avec le maximum de 1 est: %d",index);

	return 0;
}
 
 

182. Écrire un programme en C pour afficher tous les éléments uniques dans un tableau non trié.

Exemple de sortie:

Le tableau donné est: 2 1 7 3 7 3 2 4 2 6 2 
Les éléments uniques du tableau donné sont: 2 1 7 3 4 6
#include <stdio.h>

int main() {
    int tab[] = {2, 1, 7, 3, 7, 3, 2, 4, 2, 6, 2};
    int n = sizeof(tab) / sizeof(int);
    int i, j;

    // Afficher le tableau d'origine
    printf("Le tableau donné est: ");
    for (i = 0; i < n; i++) {
        printf("%d  ", tab[i]);
    }
    printf("\n");

    printf("Les éléments uniques du tableau donné sont: ");
    for (i = 0; i < n; i++) {
        // Itérer dans le tableau pour trouver les éléments uniques
        for (j = 0; j < i; j++) {
            // Si un doublon est trouvé, quitter la boucle
            if (tab[i] == tab[j])
                break;
        }

        // Si 'i' atteint 'j', l'élément courant est unique, il faut donc l'afficher.
        if (i == j) {
            printf("%d ", tab[i]);
        }
    }

    return 0;
}
 
 

183. Ecrivez un programme en C pour trouver la somme des éléments du triangle supérieur d'une matrice.

Exemple de sortie:

Le tableau donné est : 
1 2 3 
4 5 6 
7 8 9 
Les éléments à additionner de la matrice triangulaire supérieure sont: 2 3 6 
La somme des éléments de la matrice triangulaire supérieure est: 11
#include <stdio.h>

int main() {
    int L, C, n, i, j, s = 0;
    int matrice[3][3] = {{1, 2, 3},
                         {4, 5, 6},
                         {7, 8, 9}};
    L = C = n = 3;
    int i, j;

    // Afficher le tableau original
    printf("Le tableau donné est : \n");
    for (i = 0; i < L; i++) {
        for (j = 0; j < C; j++) {
            printf("%d  ", matrice[i][j]);
        }
        printf("\n");
    }

    printf("Les éléments à additionner de la matrice triangulaire supérieure sont:");
    for (i = 0; i < L; i++) {
        for (j = 0; j < C; j++) {
            if (i < j) {
                printf("%d  ", matrice[i][j]);
                // Additionner les éléments de la matrice triangulaire supérieure
                s += matrice[i][j]; 
            }
        }
    }
    printf("\nLa somme des éléments de la matrice triangulaire supérieure est: %d", s);
    return 0;
}
 
 

184. Ecrivez un programme en C pour trouver la somme des éléments du triangle inférieurs d'une matrice.

Exemple de sortie:

Le tableau donné est : 
1 2 3 
4 5 6 
7 8 9 
Les éléments à additionner de la matrice triangulaire inférieur sont: 4 7 8
La somme des éléments de la matrice triangulaire inférieur est: 19
#include <stdio.h>

int main() {
    int L, C, n, i, j, s = 0;
    int matrice[3][3] = {{1, 2, 3},
                         {4, 5, 6},
                         {7, 8, 9}};
    L = C = n = 3;
    int i, j;

    // Afficher le tableau original
    printf("Le tableau donné est : \n");
    for (i = 0; i < L; i++) {
        for (j = 0; j < C; j++) {
            printf("%d  ", matrice[i][j]);
        }
        printf("\n");
    }

    printf("Les éléments à additionner de la matrice triangulaire inférieur sont:");
    for (i = 0; i < L; i++) {
        for (j = 0; j < C; j++) {
            if (i > j) {
                printf("%d  ", matrice[i][j]);
                // Additionner les éléments de la matrice triangulaire inférieur
                s += matrice[i][j]; 
            }
        }
    }
    printf("\nLa somme des éléments de la matrice triangulaire inférieur est: %d", s);
    return 0;
}
 
 

185. Écrire un programme en C pour générer des permutations aléatoires dans un tableau.

Exemple de sortie:

Le tableau donné est:
0 1 2 3 4 5 6 7 8 9
Les éléments du tableau sont mélangés:
8 4 0 2 9 5 7 1 3 6
#include <stdio.h>
#include <stdlib.h>

// mélanger le tableau
void rand_tab(int *tab, size_t n)
{
    if (n > 1) 
    {
        size_t i;
        for (i = 0; i < n - 1; i++) 
        {
          size_t j = i + rand() / (RAND_MAX / (n - i) + 1);
          int t = tab[j];
          tab[j] = tab[i];
          tab[i] = t;
        }
    }
}
// afficher les éléments du tableau
void afficher_tab(int *tab, size_t n){
    for (int i = 0; i < n; i++)
        printf("%d ", tab[i]);
}

int main() {
    int tab[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    printf("Le tableau donné est:");
    afficher_tab(tab, 10);
    rand_tab(tab, 10); 
    printf("\nLes éléments du tableau sont mélangés:");
    afficher_tab(tab, 10);

    return 0;
}
 
 

186. Ecrivez un programme en C pour trouver le nombre qui se répète le plus dans un tableau donné.

Exemple de sortie:

Le tableau donné est:
0 1 2 3 4 5 5 5 5 5
Le nombre qui se répète le plus est 5
#include <stdio.h>

int repNbr(int tab[], int n) 
{
    int i, j, max, count, maxCount = 0;
    /* La fréquence de chaque élément est calculée et vérifiée. Si elle 
	est supérieure au nombre maximal d'éléments trouvés jusque-là, 
	elle est mise à jour. */  
    for(i = 0; i< n; i++)
    {
        count = 1;
		//Boucle For pour vérifier les éléments dupliqués
        for(j = i+1; j < n; j++)  
        {
            if(tab[j] == tab[i])
            {
                count++; //Incrémenter le compteur
                /* Si le nombre d'éléments actuels est supérieur à maxCount, 
				alors actualiser max */
                if(count > maxCount)
                {
                    max = tab[j];
                }
            }
        }
    }
    return max;
}


int main() {
    int tab[] = {2, 3, 3, 5, 3, 4, 1, 7, 7, 7, 7};
    int n = sizeof(tab) / sizeof(tab[0]);
    int i;

    // Afficher le tableau d'origine
    printf("Le tableau donné est: \n");
    for (i = 0; i < n; i++) {
        printf("%d  ", tab[i]);
    }
    printf("\n");

    printf("Le nombre qui se répète le plus est: %d", repNbr(tab, n));
    return 0;
}
 
 

187. Ecrivez un programme en C pour trouver une paire avec la différence donnée.

Exemple de sortie:

Le tableau donné est :
1 8 2 3 4 
La différence donnée est: 4
La paire est: (4, 8)
#include <stdio.h>
#include <stdbool.h>

// Fonction pour trouver la paire avec la différence donnée
bool findPair(int tab[], int size, int diff) {
    int i = 0;  
    int j = 1;

    while (i < size && j < size) {
        if (i != j && tab[j] - tab[i] == diff) {
            printf("La paire est: (%d, %d)", tab[i], tab[j]);
            return true;
        } else if (tab[j] - tab[i] < diff) {
            j++; // Incrémenter j pour vérifier l'élément suivant
        } else {
            i++; // Incrémenter i pour vérifier l'élément suivant
        }
    }

    printf("Aucune paire n'a été trouvée dans le tableau donné.");
    return false;
}

int main() {
    int tab[] = {1, 8, 2, 3, 4};
    // Calculer la taille du tableau
    int size = sizeof(tab) / sizeof(tab[0]);
    int diff = 4;
    int i;

    // Afficher le tableau original
    printf("Le tableau donné est: \n");
    for(i = 0; i < size; i++) {
        printf("%d  ", tab[i]);
    }
    printf("\n");

    printf("La différence donnée est: %d\n", diff);
    findPair(tab, size, diff);
    return 0;
}
 
 

188. Ecrivez un programme en C pour séparer les 0 et les 1 dans un tableau.

Exemple de sortie:

Le tableau donné est :
0 1 0 1 1 0
Le tableau après séparation est: 0 0 0 1 1 1
#include <stdio.h>

void sep0et1(int tab[], int size)
{
    int gauche = 0, droite = size-1;

    while (gauche < droite)
    {
        /* Incrémenter l'index de gauche tant que l'on voit 0 à gauche */
        while (tab[gauche] == 0 && gauche < droite)
            gauche++;

        /* Décrémenter l'index de droite tant que l'on voit 1 à droite */
        while (tab[droite] == 1 && gauche < droite)
            droite--;

        /* Si la gauche est plus petite que la droite, il y a un 
        1 à gauche et un 0 à droite. Échangez-les. */
        if (gauche < droite)
        {
            tab[gauche] = 0;
            tab[droite] = 1;
            gauche++;
            droite--;
        }
    }
}
 
int main(){
    int tab[] = {0, 1, 0, 1, 1, 0};
    int tab_size = 6, i = 0;

    sep0et1(tab, tab_size);
    printf("Le tableau séparé est: ");

    for (i = 0; i < 6; i++)
        printf("%d ", tab[i]);

    getchar();
    return 0;
}
 
 

189. Écrire un programme en C pour séparer les éléments pairs et impairs dans un tableau.

Exemple de sortie:

Le tableau donné est :
3 4 5 2 1 6 8
Le tableau après séparation est: 2 4 6 8 1 3 5
#include <stdio.h>

// Fonction permettant d'échanger deux éléments
void swap(int *a, int *b) 
{ 
    int tmp = *a; 
    *a = *b; 
    *b = tmp; 
} 

// Fonction pour séparer les nombres pairs et impairs dans un tableau
void paireImpaire(int tab[], int size) 
{ 
    int gauche = 0, droite = size - 1; 

    // Séparation des nombres pairs et impairs
    while (gauche < droite) 
    { 
        // Déplacer l'index gauche jusqu'à ce qu'un nombre impair soit trouvé
        while (tab[gauche] % 2 == 0 && gauche < droite) 
            gauche++; 

        // Déplacer l'indice_droit jusqu'à ce qu'un nombre pair soit trouvé
        while (tab[droite] % 2 == 1 && gauche < droite) 
            droite--; 

        // Échanger les éléments pairs et impairs trouvés
        if (gauche < droite) 
        { 
            swap(&tab[gauche], &tab[droite]); 
            gauche++; 
            droite--; 
        } 
    } 
} 

int main() 
{ 
    int tab[] = {3, 4, 5, 2, 1, 6, 8}; 
    int tab_size = sizeof(tab) / sizeof(tab[0]); 
    int i = 0; 

    // Afficher le tableau original
    printf("Le tableau donné est: \n");
    for(i = 0; i < tab_size; i++)
    {
        printf("%d  ", tab[i]);
    }
    printf("\n");

    paireImpaire(tab, tab_size); 

    printf("Le tableau après séparation est: "); 
    for (i = 0; i < tab_size; i++) 
        printf("%d ", tab[i]); 

    return 0; 
}
 
 

190. Écrire un programme en C pour concaténer deux tableaux d'entiers donnés.

Exemple de sortie:

([1, 2, 3, 4, 5],[6, 7, 8, 9, 10]) -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
#include <stdio.h>

int main()
{
    int tab3_size, i, j, tab1_size = 5, tab2_size = 5;
    int tab1[5] = { 1, 2, 3, 4, 5 };
    int tab2[5] = { 6, 7, 8, 9, 10 };
 
    // Déclaration de la taille du tableau 3
    tab3_size = tab1_size + tab2_size;
    int tab3[tab3_size];
 
    // copier les éléments du tableau 1 dans le tableau 3
    for (i = 0; i < tab1_size; i++) {
        tab3[i] = tab1[i];
    }
 
    // copier les éléments du tableau 2 dans le tableau 3
    for (i = 0, j = tab1_size;
         j < tab3_size && i < tab2_size; i++, j++) {
        tab3[j] = tab2[i];
    }
 
    // Éléments du tableau après merge
    for (i = 0; i < tab3_size; i++) {
        printf("%d ", tab3[i]);
    }
    return 0;
}
Nous travaillons dur pour ajouter plus d'exercices. Veuillez attendre les parties suivantes...

 
 

191. Écrire un programme en C permettant de saisir 10 nombres et de les stocker dans un tableau appelé myTab, puis de les afficher.

Exemple de sortie:

Entrer un nombre: 6   
Entrer un nombre: 3   
Entrer un nombre: 8   
Entrer un nombre: 1   
Entrer un nombre: 5  
Entrer un nombre: 9  
Entrer un nombre: 4  
Entrer un nombre: 2  
Entrer un nombre: 6  
Entrer un nombre: 0
6   3   8   1   5   9   4   2   6   0
#include <stdio.h>

int main()
{
	int tab[10],i; 

	for(i=0; i<10; i++){
		printf("Entrer un nombre:");
		scanf("%d",&tab[i]);
	} 
   
	for(i=0 ; i<10; i++)
		printf("%d ",tab[i]);

	return 0; 
}

Le programme ci-dessus invite l'utilisateur à saisir 10 entiers dans un tableau nommé tab, puis affiche les éléments du tableau.

La première boucle for demande à l'utilisateur de saisir 10 éléments dans le tableau, et la boucle for s'exécute de 0 jusqu'à 9, invitant l'utilisateur à saisir chaque élément à l'aide de scanf(), et stockant chaque entrée dans l'index correspondant du tableau tab[i].

La deuxième boucle for affiche ensuite le contenu du tableau, qui parcourt les éléments de tab et affiche chaque élément à l'aide de printf().

 
 

192. Écrire un programme en C permettant d'entrer 10 notes et d'afficher la moyenne de ces notes.

Exemple de sortie:

Entrer un nombre: 6  
Entrer un nombre: 3  
Entrer un nombre: 8  
Entrer un nombre: 1  
Entrer un nombre: 5  
Entrer un nombre: 9  
Entrer un nombre: 4  
Entrer un nombre: 2  
Entrer un nombre: 6  
Entrer un nombre: 0
La moyenne est: 4,4
#include <stdio.h>

int main()
{
	float notes[10],sum=0; 
	int i;
	
	for(i=0; i<10; i++){ 
		printf("Entrer un nombre:");
		scanf("%f",&notes[i]);
		sum = sum + notes[i];
	} 
   
	printf("La moyenne est:%f", sum/10);

	return 0; 
}

Le programme ci-dessus demande à l'utilisateur de saisir 10 notes dans le tableau, et la boucle for s'exécute de 0 jusqu'à 9, invitant l'utilisateur à saisir chaque élément à l'aide de scanf(), et stockant chaque entrée dans l'index correspondant du tableau notes[i].

Ensuite, à chaque itération de la boucle, la somme de chaque élément saisi est calculée. Une fois la boucle for terminée, la moyenne est calculée et affichée à l'écran à l'aide de printf().

 
 

193. Écrire un programme en C permettant la saisi de 10 nombres et l'affichage du maximum de ces nombres.

Exemple de sortie:

Entrer un nombre: 6   
Entrer un nombre: 3   
Entrer un nombre: 8   
Entrer un nombre: 1   
Entrer un nombre: 5   
Entrer un nombre: 7   
Entrer un nombre: 4   
Entrer un nombre: 2   
Entrer un nombre: 6   
Entrer un nombre: 0
Le maximum est: 8
#include <stdio.h>

int main()
{
	int max,i,tab[10];

	printf("Entrer un nombre:");
	scanf("%d",&tab[0]);
	
	max = tab[0];
   
	for(i=1; i<10; i++){ 
		printf("Entrer un nombre:");
		scanf("%d",&tab[i]);
		if(tab[i] > max)
			max = tab[i];
	} 
   
	printf("Le maximum est: %d",max);

	return 0; 
}

Dans ce programme nous avons créer une variable max et l'initier à tab[0] pour stocker le maximum dans le tableau.

Itérer sur le tableau

  • Comparer tab[i] avec max.
  • Si tab[i] > max, mettre à jour max = tab[i].

Une fois l'itération terminée, renvoyer max comme réponse.

 
 

194. Ecrivez un programme en C qui permet d'entrer 10 nombres dans un tableau, et de calculer le nombre d'occurrences d'un élément X dans ce tableau. Où X est entré par l'utilisateur.

Exemple de sortie:

Entrer un nombre: 6   
Entrer un nombre: 3   
Entrer un nombre: 8   
Entrer un nombre: 6   
Entrer un nombre: 5   
Entrer un nombre: 7   
Entrer un nombre: 4   
Entrer un nombre: 6   
Entrer un nombre: 6   
Entrer un nombre: 0
Entrer Le nombre recherché: 6
Nombre d'occurences de 6 est 4
#include <stdio.h>

int main()
{
	int tab[10],nbrOcc=0,i,nbrRech;

	for(i=0; i<10; i++){ 
		printf("Entrer un nombre:");
		scanf("%d",&tab[i]);
	} 
   
	printf("Entrer Le nombre recherché:");
	scanf("%d",&nbrRech);
    
	for(i=0; i<10; i++){ 
		if (tab[i] == nbrRech)
			nbrOcc++;
	} 
	printf("Nombre d'occurences de %d est %d",nbrRech,nbrOcc);

	return 0; 
}

Pour compter le nombre d'occurrences d'une valeur spécifique dans un tableau, nous pouvons utiliser une simple boucle for tout en recherchant notre valeur cible. Si la valeur cible est trouvée, nous incrémentons la variable nbrOcc. Nous procédons de cette façon jusqu'à ce que l'ensemble du tableau soit parcouru.

Approche:

  • Initialiser la variable nbrOcc à zéro.
  • On parcourt le tableau et on vérifie si l'élément courant(tab[i]) correspond à la valeur cible(nbrRech).
  • Si c'est le cas, nbrOcc est incrémenté de 1.
  • Dans le cas contraire, passer à l'itération suivante.
  • Répétez le processus jusqu'à ce que tous les éléments du tableau aient été vérifiés.
  • Enfin, retourner nbrOcc.
 
 

195. Ecrivez un programme en C pour entrer 10 entiers dans un tableau et trier ce tableau dans un ordre croissant. Affichez ensuite ce tableau après l'avoir trié.

Exemple de sortie:

Entrer un nombre: 8   
Entrer un nombre: 1  
Entrer un nombre: 5  
Entrer un nombre: 6   
Entrer un nombre: 3  
Entrer un nombre: 2   
Entrer un nombre: 4   
Entrer un nombre: 7   
Entrer un nombre: 9   
Entrer un nombre: 0
Tableau trié: 0    1    2    3    4    5    6    7    8    9
#include <stdio.h>

int main()
{
	int tab[10],tmp,i,j;

	for(i=0; i<10; i++){ 
		printf("Entrer un nombre:");
		scanf("%d",&tab[i]);
	} 
   
	for(i=0; i<9; i++){ 
		for(j=i+1; j<10; j++){
			if(tab[j] < tab[i])
			{  
				tmp = tab[i];
				tab[i] = tab[j];
				tab[j] = tmp;
			}
		} 
	} 
	for(i=0; i<10; i++) 
		printf("%d\t",tab[i]);

	return 0; 
}

Le programme ci-dessus invite l'utilisateur à saisir 10 nombres dans un tableau nommé tab, puis affiche les éléments triés du tableau.

La première boucle for demande à l'utilisateur de saisir 10 éléments dans le tableau, et la boucle for s'exécute de 0 jusqu'à 9, invitant l'utilisateur à saisir chaque élément à l'aide de scanf(), et stockant chaque entrée dans l'index correspondant du tableau tab[i].

La deuxième boucle for parcourt le tableau tab et permute les éléments du tableau(permute deux éléments aux positions i et j) en utilisant une variable temporaire pour contenir l'une des valeurs pendant la permutation. Le programme parcourt le tableau répétitivement, compare chaque paire d'éléments adjacents et les échange si nécessaire. Après le premier passage, l'élément le plus grand est placé à la fin du tableau.

  1. Dans le programme de tri à bulle, nous comparons les deux premiers éléments d'un tableau et les permutons si nécessaire.
  2. Si nous voulons trier les éléments d'un tableau dans l'ordre croissant et si le premier élément est plus grand que le second, nous devons permuter les éléments.
  3. Si le premier élément est plus petit que le second, il n'est pas nécessaire de permuter les éléments. Ce processus se poursuit jusqu'à ce que le dernier et l'avant-dernier élément soient comparés et permutés.

La troisième boucle for affiche ensuite le tableau trié, qui parcourt les éléments de tab et affiche chaque élément à l'aide de printf().

 
 

196. Ecrivez un programme en C qui permet de saisir 5 nombres dans un tableau. Comptez ensuite le nombre d'éléments pairs et impairs.

Exemple de sortie:

Entrer un nombre: 1
Entrer un nombre: 3
Entrer un nombre: 2
Entrer un nombre: 6
Entrer un nombre: 9

Total des éléments pairs: 2 
Total des éléments impaires: 3
#include <stdio.h>

int main()
{
	int i,pair=0,impair=0,tab[5]; 

	for(i=0; i<5; i++){
		printf("Entrer un nombre:");
		scanf("%d",&tab[i]);     
	}   

	for(i=0; i<5; i++){
		if(tab[i]%2==0) pair++;
		else impair++;       
	}
  
	printf("Total des éléments pairs: %d\n",pair);
	printf("Total des éléments impaires: %d",impair);
		
	return 0; 
}

Le programme ci-dessus invite l'utilisateur à saisir 5 nombres dans un tableau nommé tab, puis affiche le total des éléments pairs et impaires.

Déclarez et initialisez deux variables avec zéro pour stocker les nombres pairs et impairs.
pair=0 et impair=0.

La première boucle POUR demande à l'utilisateur de saisir 5 éléments dans le tableau, et la boucle for s'exécute de 1 jusqu'à 5, invitant l'utilisateur à saisir chaque élément à l'aide de scanf(), et stockant chaque entrée dans l'index correspondant du tableau tab[i].

La deuxième boucle for parcourt le tableau tab de 0 à 5. A l'intérieur de la boucle, incrémenter le nombre pair de 1 si l'élément courant du tableau est pair. Sinon, on incrémente le nombre impair.

Enfin, nous affichons le résultat à l'aide de printf().

 
 

197. Ecrivez un programme en C qui demande d'entrer un tableau Tab de 10 nombres, et de placer les éléments pairs dans un tableau Tab1 et les éléments impairs dans un tableau Tab2. Affichez ensuite Tab1 et Tab2.

Exemple de sortie:

Tab : 1 5 2 4 9 3 3 6 8 7   
Tab1: 2 4 6 8     
Tab2: 1 5 9 3 3 7
#include <stdio.h>

int main()
{
	int tab[10],tab1[10],tab2[10],i,j=0,k=0;
	
	//Stocker les éléments dans le tableau original
	for(i=0; i < 10; i++) {  
		printf("Entrer un nombre:");
		scanf("%d",&tab[i]);
	}  

	for(i=0; i < 10; i++) {  
		if(tab[i]%2 == 0){
			//Stocker les éléments paires
			tab1[j] = tab[i];  
			j++;
		}
		else{
			//Stocker les éléments impaires
			tab2[k] = tab[i]; 
			k++; 
		}
	}
	//Afficher le tableau 1
	for(i=0; i < j ; i++){
		printf("%d ",tab1[i]);
	}  
		
	printf("\t");
	
	//Afficher le tableau 2
	for(i=0; i < k; i++){
		printf("%d ",tab2[i]); 
	}  

	return 0; 
}

La première instruction printf demande à l'utilisateur d'entrer N nombre d'éléments dans le tableau tab à l'aide d'une boucle for, et stocke chaque entrée dans l'index correspondant du tableau tab[i].

La boucle for suivante itère ensuite sur chaque élément de tab et sépare les éléments pairs et impairs dans deux tableaux différents tab1 et tab2, respectivement, à l'aide d'instructions If-Else. Les variables j et k sont utilisées pour suivre les indices des éléments pairs et impairs dans les deux tableaux.

Enfin, les deux dernières instructions printf(Ligne 27 et 34) affichent les éléments pairs et impairs trouvés, respectivement, en utilisant une boucle for pour itérer sur chaque élément des deux tableaux.

 
 

198. Écrire un programme en C qui lit un caractère et détermine si c'est une lettre ou non, dans le cas d'une lettre, il indique si c'est une minuscule ou une majuscule.

Exemple de sortie:

Donnez une lettre: a
C'est une lettre Minuscule

Donnez une lettre: A
C'est une lettre Majuscule

Donnez une lettre: 5
C'est pas une lettre!
#include <stdio.h>

int main()
{
	char l;
	printf("Donnez une lettre:");
	scanf("%c",&l);
	
	if (l >= 65 && l <= 90){
		printf("C'est une lettre Majuscule");
	}
	else { 
		if (l >= 97 && l <= 122)
			printf("C'est une lettre Minuscule");
		else 
			printf("C'est pas une lettre!");
	}  

	return 0; 
}

Pour résoudre ce problème, il faut connaître la valeur ASCII d'un caractère. C'est la façon la plus simple de déterminer si un caractère est alphabétique ou non. Ce problème est résolu à l'aide des détails suivants:

  • Les lettres majuscules (A-Z) se situent dans la plage 65-91 de la valeur ASCII.
  • Les lettres minuscules (a-z) se situent dans la plage 97-122 de la valeur ASCII.
  • Toute valeur ASCII différente est un caractère non alphabétique.
 
 

199. Écrire un programme en C qui compte le nombre d'éléments dupliqués dans un tableau de nombres entiers saisi par l'utilisateur.

Exemple de sortie:

Entrer un nombre: 5   
Entrer un nombre: 1  
Entrer un nombre: 5  
Entrer un nombre: 6   
Entrer un nombre: 3  
Entrer un nombre: 5   
Entrer un nombre: 4   
Entrer un nombre: 7   
Entrer un nombre: 9   
Entrer un nombre: 5
Nombre total d'éléments dupliqués est: 4
#include <stdio.h>

int main()
{
	int tab[10],i,j,compteur=0; 
	
	for(i=0; i<10; i++){
		printf("Enter un nombre:");
		scanf("%d",&tab[i]);                
	}

	for(i=0; i<10; i++){
		for(j=i+1; j<10; j++){
			if (tab[i] == tab[j]){
				compteur++;
			}
		} 
	}	
	printf("Nombre total d'éléments dupliqués est: %d",compteur) ;

	return 0; 
}

Le programme ci-dessus invite l'utilisateur à saisir 10 nombres dans un tableau nommé tab.

La première boucle for demande à l'utilisateur de saisir 10 éléments dans le tableau, et la boucle for s'exécute de 1 jusqu'à 10, invitant l'utilisateur à saisir chaque élément à l'aide de scanf(), et stockant chaque entrée dans l'index correspondant du tableau tab[i].

Initialiser la variable "compteur" avec 0 pour stocker le nombre de doublons.

Pour compter le nombre total d'éléments dupliqués dans un tableau donné, nous avons besoin de deux boucles. Exécutez une boucle extérieure de 0 à la taille(10). La structure de la boucle doit ressembler à for(i=0; i<10; i++). Cette boucle est utilisée pour sélectionner chaque élément du tableau et vérifier les éléments suivants pour les éléments en double en utilisant une autre boucle imbriquée.

Exécutez une autre boucle interne pour trouver le premier doublon de l'élément actuel du tableau. Exécutez une boucle interne de i + 1 à la taille(10), la structure de la boucle devrait ressembler à for(j=i+1; j<10; j++). Pourquoi exécuter la boucle à partir de i + 1 ? Parce que nous devons rechercher les éléments en double dans les éléments suivants, à partir de l'élément actuel.

La boucle interne vérifie la présence d'un élément en double. Si c'est le cas, le compteur est incrémenté. C'est-à-dire if (tab[i] == tab[j]) compteur++;.

 
 

200. Écrire un programme en C qui permet d'entrer 10 nombres entiers et de savoir si ces nombres entiers sont successifs ou non.

Exemple de sortie:

0 1 3 4 5 6 7 8 9 
Les nombres ne sont pas successives

11 12 13
Les nombres sont successives
#include <stdio.h>

int main()
{
	int check=0,i,tab[10];
	
	printf("Entrer un nombre:"); 
	scanf("%d",&tab[0]);

	for(i=1; i<=9; i++){
		printf("Entrer un nombre:"); 
		scanf("%d",&tab[i]);
		
		if (tab[i] < tab[i-1]){
			check=1;
		}
	}
	
	if (check==0)
		printf("Les nombres sont successives");
	else
		printf("Les nombres ne sont pas successives");

	return 0; 
}
 
 

201. Écrire un programme en C qui place les zéro vers la fin du tableau, en maintenant l'ordre des éléments.

Exemple de sortie:

Entrée: 8 0 6 0 1 6 0 0 2 3
Sortie: 8 6 1 6 2 3 0 0 0 0
#include <stdio.h>

int main()
{
	int tab[10],tmp,i,j;
 
	for(i=0; i<10; i++)
	{ 
		scanf("%d", &tab[i]);
	}
 
	for(i=0; i<10; i++)
		printf("%d  ",tab[i]);
   
	for(i=0; i<9; i++)
	{ 
		if(tab[i]==0) {
			j = i + 1;
			while(tab[j]==0 && j<9) {
				j++;
			}
			tmp = tab[i]; 
			tab[i]= tab[j]; 
			tab[j]= tmp;
		}
	}
 
	printf("\n");
  
	for(i=0; i<10; i++)
		printf("%d  ",tab[i]);

	return 0; 
}
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *