Exercices corrigés sur les pointeurs et fonctions – Langage C

 Exercices corrigés sur les pointeurs et fonctions N°1  Langage C

Exercice 1

Écrire une fonction qui permet de rechercher dans un tableau d’entiers tab une valeur A. void chercherVal (int tab[], int n, int A, int *pos, int *nb_occ); Dans pos, la fonction sauvegarde l’indice de la dernière apparition et -1 si la valeur n’a pas été trouvée. Dans nb_occ, elle sauvegarde le nombre d’occurence de A dans tab.

Solution

#include<stdio.h>

#define N 100

void chercherVal (int tab[], int n, int A, int *pos, int *nb_occ);

// int *tab ========== int tab[]//µµµµ*******************************

void saisie(int *ptab,int *pn); //ou int tab[]

void affiche(int tab[],int n);

void main()

{

int tab[N],n,val,nb_occ=0,pos=-1;;

saisie(tab,&n);

affiche(tab,n);

printf(“\n Donner la val a chercher \n”); // SERT LORSKE unr fction A appelle B et B appelle A

scanf(“%d”,&val);

chercherVal(tab,n,val,&pos,&nb_occ);

if(nb_occ==0 )printf(“NEXISTE PAS”);

else printf(“Existe %d fois à la position %d “,nb_occ,pos);

}

void chercherVal (int tab[], int n, int A, int *pos, int *nb_occ)

{

    int i=0;

    while(i<n)

    {

        if(tab[i]==A)

        {

            //nb_occ=*nb_occ+1;

           (*nb_occ)++;

            *pos=i;

        }

        i++;

    }

}

void saisie(int *ptab,int *pn) //ou int tab[]

{

    int i;

    do{

        printf(“Donner la taille du tableau \n”);

        scanf(“%d”,pn);

    }while(*pn<=0);

    for(i=0;i<*pn;i++)

    {

        printf(“Donner tab[%d] “,i);

        scanf(“%d”,ptab+i); // OU &tab[i]

    }

}

void affiche(int tab[],int n)

{

     int i;

     for(i=0;i<n;i++)

    {

        printf(” %d | “,tab[i]);

    }

}

Exercices corrigés sur les pointeurs et fonctions N°2 – Langage C

Exercice 2

On souhaite écrire une fonction qui permet de résoudre une équation du premier degré : ax+b=0. Voici le prototype de la fonction :           int resoudre1(int a, int b, float *x);

la fonction retourne le nombre de solution trouvé (0: pas de solution, 1: une solution, -1: tout x est solution). Dans le cas où l’équation a une solution, la fonction retourne la solution dans x.

Solution

#include <stdio.h>

int resoudre1(int a, int b, float *x);

int main()

{

    int a,b;

    float x;

    int res;

    printf(“Donner a et b de ax+b \n”);

    scanf(“%d %d”,&a,&b);

    res=resoudre1(a,b,&x);

    if(res==0) printf(“Pas de resultat de %d X+ %d “,a,b);

    else if(res==-1) printf(“les solutions de %d X+ %d : X appartient a R”,a,b);

    else (“Unique resultat de %d X+ %d est %.3f”,a,b,x);

    return 0;

}

int resoudre1(int a, int b, float *x)

{

    if ((a==b)&&(b!=0)) return 0;

    if((a==0)&&(b==0)) return -1;

    *x=-(float)b/a;

    return 1;

}

Posts les plus consultés de ce blog

Tableau périodique des éléments-Tableau de Mendeleïev PDF

TD TP COURS EXAMEN pour L1 L2 L3 M1 M2 Doctorat

Équations différentielles : Cours-Résumés-Exercices corrigés