//En C, les paramètres d'une fonction sont appelés des "arguments".
#include <stdio.h>
// Fonction qui calcule la somme des valeurs d'un tableau
int sommeTableau(int tab[], int taille) {
int somme = 0;
for (int i = 0; i < taille; i++) {
somme += tab[i];
}
return somme;
}
// Fonction qui remplit un tableau avec les diviseurs d'un nombre
int* diviseurs(int tdiv[], int nb, int* taille) {
int i;
*taille = 0;
for (i = 1; i <= nb; i++) {
if (nb % i == 0) {
tdiv[*taille] = i;
(*taille)++;
}
}
return tdiv;
}
// Fonction qui calcule la somme de deux tableaux
void sommeTableaux(int tab1[], int tab2[], int taille, int resultat[]) {
for (int i = 0; i < taille; i++) {
resultat[i] = tab1[i] + tab2[i];
}
}
// Fonction qui renvoie l'indice du plus petit élément d'un tableau
int indiceMin(int tab[], int taille) {
int indice = 0;
for (int i = 1; i < taille; i++) {
if (tab[i] < tab[indice]) {
indice = i;
}
}
return indice;
}
// Fonction qui renvoie le plus petit élément d'une matrice
double plusPetitElement(double matrice[][100], int lignes, int colonnes) {
double min = matrice[0][0];
for (int i = 0; i < lignes; i++) {
for (int j = 0; j < colonnes; j++) {
if (matrice[i][j] < min) {
min = matrice[i][j];
}
}
}
return min;
}
// Fonction qui renvoie le nombre de réels positifs d'une matrice
int nbReelsPositifs(double matrice[][100], int lignes, int colonnes) {
int nbPositifs = 0;
for (int i = 0; i < lignes; i++) {
for (int j = 0; j < colonnes; j++) {
if (matrice[i][j] > 0) {
nbPositifs++;
}
}
}
return nbPositifs;
}
// Fonction qui affiche la position du plus petit élément d'une matrice
void positionPlusPetitElement(double matrice[][100], int lignes, int colonnes, int* ligne, int* colonne) {
double min = matrice[0][0];
*ligne = 0;
*colonne = 0;
for (int i = 0; i < lignes; i++) {
for (int j = 0; j < colonnes; j++) {
if (matrice[i][j] < min) {
min = matrice[i][j];
*ligne = i;
*colonne = j;
}
}
}
}
// Fonction qui renvoie le plus petit élément d'un tableau
double plusPetitElementTab(double tab[], int taille) {
double min = tab[0];
for (int i = 1; i < taille; i++)
{
if (tab[i] < min) {
min = tab[i];
}
}
return min;
}
// Fonction qui génère puis renvoie la transposée d'une matrice
void transposerMatrice(double mat[][MAX_COL], int nbLignes, int nbCols, double transposee[][MAX_LIGNE]) {
for (int i = 0; i < nbLignes; i++) {
for (int j = 0; j < nbCols; j++) {
transposee[j][i] = mat[i][j];
}
}
}
// Fonction qui prend 2 matrices (mat111 et mat112) et calcule leur produit
void multiplierMatrices(double mat1[][MAX_COL], int nbLignes1, int nbCols1, double mat2[][MAX_COL], int nbLignes2, int nbCols2, double resultat[][MAX_COL]) {
if (nbCols1 != nbLignes2) {
printf("Erreur : les dimensions des matrices ne sont pas compatibles pour effectuer une multiplication\n");
return;
}
for (int i = 0; i < nbLignes1; i++) {
for (int j = 0; j < nbCols2; j++) {
double sum = 0;
for (int k = 0; k < nbCols1; k++) {
sum += mat1[i][k] * mat2[k][j];
}
resultat[i][j] = sum;
}
}
}
// Fonction qui renvoie le plus grand élément d'une matrice
double plusGrandElementMat(double mat[][MAX_COL], int nbLignes, int nbCols) {
double max = mat[0][0];
for (int i = 0; i < nbLignes; i++) {
for (int j = 0; j < nbCols; j++) {
if (mat[i][j] > max) {
max = mat[i][j];
}
}
}
return max;
}
// Fonction qui détermine le 'Point Col' d'une matrice et renvoie sa transposée
void trouverPointCol(double mat[][MAX_COL], int nbLignes, int nbCols, double transposee[][MAX_LIGNE]) {
int minLigne, maxCol;
double minVal = mat[0][0], maxVal = mat[0][0];
// Recherche du minimum de la ligne 0
for (int j = 1; j < nbCols; j++) {
if (mat[0][j] < minVal) {
minVal = mat[0][j];
minLigne = 0;
maxCol = j;
}
}
// Recherche du maximum de la colonne correspondant au minimum de la ligne 0
for (int i = 1; i < nbLignes; i++) {
if (mat[i][maxCol] > maxVal) {
maxVal = mat[i][maxCol];
minLigne = i;
}
}
// Transposition de la matrice
for (int i = 0; i < nbCols; i++) {
for (int j = 0; j < nbLignes; j++) {
transposee[i][j] = mat[j][i];
}
}
}