Soma de digitos de um número

Boa noite pessoal, estou trabalhando num programa que gera uma matriz 10x10, com números entre 100 e 999, e por fim que realize a soma dos algarismos de cada número gerado, ex: se saiu 350, 3+5+0=8, caso saia 495, 4+5+9=18 e por aí, ou seja tenho que somar os algarismos dos 100 elementos dessa matriz individualmente, no entanto não consigo gerar a parte da soma de jeito nenhum, segue o código abaixo para ajudar.

#include

#include

#include

using namespace std;

void gen( int [][10] );

void prn( int [][10] );

void sel( int [][10] );

int main()

{

int n[ 10 ][ 10 ];

gen( n );

prn( n );

sel(n);

prn(n);

return 0;

}

void gen( int g[][10] )

{

srand(time(0));

for( int i = 0 ; i < 10 ; i++ )

    for( int j = 0 ; j < 10 ; j++ )

        g[ i ] [ j ]= 100+ rand()%899 + 1 ;

}

void sel (int s[][10] )

{

int soma[10][10]

for( int i = 0 ; i < 10 ; i++ )

     for( int j = 0 ; j < 10 ; j++ )

     {

       soma =

     }

}

void prn( int p[][10] )

{

for( int i = 0 ; i < 10 ; i++ )

{

    for ( int j = 0 ; j < 10 ; j++ )

        cout << p[ i ][ j ] << '|';

    cout << endl;

}

}