Bonjour, je suis débutant en C. J’aimerais solliciter votre aide pour ma compréhension. Il est facile de faire appel à une fonction après la déclaration d’un tableau. Exemple :
[On suppose que le prototype est correctement placé]
[là on est dans le main]
int tableau[6]={5,2,6,1,4,3,};
croissant(tableau,6);
[Ici, le classement par ordre croissant apparaît correctement] → 1,2,3,4,5,6
En dessous c’est la Fonction :
int croissant(int tab[], int tailleTab)
// on suppose ici que la fonction est détaillé, et qu’elle a pour rôle de classer les nombres dans l’ordre croissant
Jusque là tout fonctionne correctement. Mais si j’essaye de faire rentrer les valeurs d’un tableau, une à une par saisie (scanf). Et qu’après je remette comme avant la fonction. Celle-ci ne s’affiche pas. Je n’arrive pas à comprendre pourquoi ?
Voir détail de mon programme.
#include <stdio.h>
#include <stdlib.h>
int croissant(int tab[],int tailleTab);
/--------------------- MAIN ------------------------/
int main(int argc, char *argv[])
{
int tableau[6]={0};
printf(« \nEntrez la valeur du 1er nombre : « );
scanf( »%d », &tableau[0]);
printf(« \nEntrez la valeur du 2e nombre : « );
scanf( »%d », &tableau[1]);
printf(« \nEntrez la valeur du 3e nombre : « );
scanf( »%d », &tableau[2]);
printf(« \nEntrez la valeur du 4e nombre : « );
scanf( »%d », &tableau[3]);
printf(« \nEntrez la valeur du 5e nombre : « );
scanf( »%d », &tableau[4]);
printf(« \nEntrez la valeur du 6e nombre : « );
scanf( »%d », &tableau[5]);
printf(« \n »);
croissant(tableau,6);
return 0;
}
/-------------------- FONCTION ---------------------/
int croissant(int tab[], int tailleTab)
{
int var, i, somme = 0;
while(var<somme || var==somme){
for(i=0; i<tailleTab; i++)
{
somme+=tab[i];
if(var == tab[i]){printf("%d", tab[i]);}
}
var++;
}
}