Utiliser une valeur d'un tableau dans une fonction
Résolu
Lk7
-
Lk7 -
Lk7 -
A voir également:
- Utiliser une valeur d'un tableau dans une fonction
- Tableau word - Guide
- Fonction si et - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
1 réponse
Tu mélanges tout.
La signature de ta fonction sommp est:
float sommep(float tab1[],float tab2[])
or tu y fais appel avec deux arguments float
Soit cohérent et modifie ta fonction sommep en
OU conserve ton en-tête et passe les variables tab1 et tab2 en paramètre (ce seront dès lors des pointeurs). et effectue une boucle sur la longueur des tableaux (avec valeurs sentinelle ou longueur passée en argument.
D'autre part val = tab1[] + tab2[]; n'a pas de sens en C.
Tu peux tout au plus ajouter un entier à un pointeur, de sorte que tab1+3 pointe sur le 4-ième élément du tableau tab1
Donc quelque chose du genre:
johand@bata:~/src/CCM/C$ touch tableaux.c
johand@bata:~/src/CCM/C$ make tableaux
cc tableaux.c -o tableaux
johand@bata:~/src/CCM/C$ echo 1 2 3 4 5 5 4 3 2 1 |./tableaux
Veuillez ajouter 5 valeurs pour le 1er tableau :
Veuillez ajouter 5 valeurs pour le 1er tableau :
6.000000
6.000000
6.000000
6.000000
6.000000
La prochaine fois, utilise les balises <code *> , </code> afin d'essayer d'obtenir si pas une bonne indentation, au moins une numérotation des lignes de code.
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
La signature de ta fonction sommp est:
float sommep(float tab1[],float tab2[])
or tu y fais appel avec deux arguments float
Soit cohérent et modifie ta fonction sommep en
float sommep(float x, float y) { float val; //aucun intérêt à utiliser une variable locale supplémentaire return x+y ; }
OU conserve ton en-tête et passe les variables tab1 et tab2 en paramètre (ce seront dès lors des pointeurs). et effectue une boucle sur la longueur des tableaux (avec valeurs sentinelle ou longueur passée en argument.
D'autre part val = tab1[] + tab2[]; n'a pas de sens en C.
Tu peux tout au plus ajouter un entier à un pointeur, de sorte que tab1+3 pointe sur le 4-ième élément du tableau tab1
Donc quelque chose du genre:
return val;#include <stdio.h> #include <stdlib.h> #define N 5 void sommep(float tab1[], float tab2[]); int main() { int i, j,w; float tab1[5], tab2[5], val; printf("Veuillez ajouter 5 valeurs pour le 1er tableau : \n"); // Remplissage du 1er tableau ! for(j=0; j<5; j++) { scanf("%f\n", &tab1[j]); } // Remplissage du 2ème tableau ! printf("Veuillez ajouter 5 valeurs pour le 1er tableau : \n"); for(w=0; w<5; w++) { scanf("%f\n", &tab2[w]); } sommep(tab1, tab2); // On appel la fonction dans une boucle pour la repeter return EXIT_SUCCESS; } void sommep(float t1[],float t2[]) { int i; for(i=0; i < N; i++) { printf("%f\n", t1[i] + t2[i]); } }sera fonctionnel, si pas stylistiquement exceptionnel.
- n'utilise pas des noms de paramètres de fonction identiques à des variables globales ou locales à main. Utilise des noms de paramètres parlants.
johand@bata:~/src/CCM/C$ touch tableaux.c
johand@bata:~/src/CCM/C$ make tableaux
cc tableaux.c -o tableaux
johand@bata:~/src/CCM/C$ echo 1 2 3 4 5 5 4 3 2 1 |./tableaux
Veuillez ajouter 5 valeurs pour le 1er tableau :
Veuillez ajouter 5 valeurs pour le 1er tableau :
6.000000
6.000000
6.000000
6.000000
6.000000
La prochaine fois, utilise les balises <code *> , </code> afin d'essayer d'obtenir si pas une bonne indentation, au moins une numérotation des lignes de code.
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
Lk7
Yep ! Merci bien !