Enoncé






Ecrire une fonction qui fournit en retour la somme des valeurs d'un tableau de flottants à deux indices dont les dimensions sont fournies en argument.







Solution



#include <stdio.h>

float somme (float * tab , int n , int p)
{
int i ;
float s = 0;
for (i=0 ; i < n*p ; i++) s += tab[i] ;
return s ;
}

void main()
{
float tab [3][4] = {{1,2,3,4} , {1,1,2,2} , {3,6,2,2}} ;
printf("somme : %f\n", somme((float*)tab,3,4)) ;
}



explications :


On reçoit un pointeur (de type * float) sur le début du tableau, et on parcourt tous les éléments (on a au total n*p éléments).

Pour utiliser la fonction somme, la difficulté consiste à lui transmettre l'adresse de début de tableau sous la forme d'un pointeur de type int *. Il faut donc faire une conversion de type, d'où la ligne : (float *)t.

Nous avons utilisé l'opérateur += qui est un opérateur particulier au C : a += b <=> a = a + b .




Renseignements sur : printf, les caractères de formattage , les types, les types, tableaux, la boucle for, appel de fonction.