Utiliser une valeur d'un tableau dans une fonction
Résolu/Fermé
A voir également:
- Utiliser une valeur d'un tableau dans une fonction
- Tableau croisé dynamique - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Utiliser chromecast - Guide
- Comment faire un tableau - Guide
1 réponse
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
Modifié par jisisv le 26/12/2015 à 16:34
Modifié par jisisv le 26/12/2015 à 16:34
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)
26 déc. 2015 à 17:01