Probleme d'execution de code sous linux

Résolu
salut
je suis nouveau sous linuxmint ,$
j'ai executer mon code avec ./a.out il m'a executer que la fonction "main" il a pas fait l'appelle aux fonctions de remplissage de deux tableaux et voilà le code:
#include <stdio.h>
#include <stdlib.h>
int remplir1 (int *A,int n);
int remplir2 (int *B,int m);
int main(int argc,char* argv[])
{
 int n,m,i,j ;
 scanf("%d",&n);
 scanf("%d",&m);
 int A[n+m],B[m];
 int remplir1 (int *A,int n);
 int remplir2 (int *B,int m);

return 0;

}

//corps de la fonction
int remplir1 (int *A,int n)
{
int i;
for(i=0;i<n;i++)
 {
 scanf("%d",&A[i]);
 }

return *A;
}

int remplir2 (int*B,int m)
{
int j;
for(j=0;j<m;j++)
 {
 scanf("%d",&B[j]);
 }

return *B;
}


Merci d'avance..!?

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. Bonjour,
    Il y a eu des erreurs à la compilation, le compilateurs a dû t'indiquer que les les lignes 11 et 12 sont incorrectes.
    Pour appeler une fonction, on doit lui passer des paramètres.
    int main()
    {
      int  n , m;
      scanf( "%d" , &n );
      scanf( "%d" , &m );
      int  ta[n+m] , tb[m];
    
      remplir1( ta , n );
      remplir2( tb , m );
    
      return 0;
    }
    1. Modérateur
      Pourquoi deux fonctions aux corps fonctionnellement identiques remplir1, remplir2 ?
      m et
      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <errno.h>
      
      void remplir (int *A,int n);
      
      int main(int argc,char* argv[])
      {
        int n,m ;
        int *A, *B;
      
        puts("Taille tableau A: ");
        scanf("%d", &n);
        puts("Taille tableau B: ");
        scanf("%d", &m);
      
        A = calloc(n, sizeof(int));
        if ( !A )
          {
            perror(strerror(errno));
            return EXIT_FAILURE;
          }
        
        B = calloc(n, sizeof(int));
        if ( !B )
          {
            perror(strerror(errno));
            return EXIT_FAILURE;
          }
      
      
        remplir (A, n);
        remplir (B, m);
        return EXIT_SUCCESS;
      
      }
      
      //corps de la fonction remplir
      void remplir (int *A,int n)
      {  
        int i;
      
        for(i=0 ;i<n; i++)
          {
            printf("Elément[%d]: ", i);
            scanf("%d", A + i);
          }
      }


      La déclaration int A[n+m],B[m]; n'a pas de sens en C. Il faut définir un array statique ou faire de l'allocation dynamique.