Probleme d'execution de code sous linux

Résolu
petit_penguin Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   -
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.
A voir également:

2 réponses

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
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;
}
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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.
0