Probleme d'execution de code sous linux
Résolu
petit_penguin
Messages postés
1
Statut
Membre
-
jisisv Messages postés 3678 Statut Modérateur -
jisisv Messages postés 3678 Statut Modérateur -
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:
Merci d'avance..!?
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
-
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; } -
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.