Fonction pour tableau
Discutez d'informatique ici !
-
t-xas
- Membre Naturel
- Messages: 41
- Enregistré le: 19 Déc 2008, 16:40
-
par t-xas » 10 Juin 2009, 12:54
Bonjour,
C'est un tp qu'on a eu il y a une semaine apropos des tableaux ,au début il faut créer un tableau de n'importe quelle taille et appliquer deux fonction (ci-dessous),pour la création d'un tableau c'est facile mais pour la création de ces fonctions ou reside le probleme.
Exercice :
-Écrire une fonction void remplir (int t[], int taille) qui permet de remplir un tableau
dentiers de taille quelconque avec des zéros.
-Écrire int secondMax(int t[], int taille) qui renvoie la seconde plus grande valeur stockée
dans un tableau dentiers de taille quelconque.
Merci
-
uztop
- Membre Complexe
- Messages: 2396
- Enregistré le: 12 Sep 2007, 12:00
-
par uztop » 10 Juin 2009, 12:56
Bonjour,
c'est en C que tu dois coder ca ?
Qu'est ce que tu as fait ? Qu'est ce qui te pose probleme ?
-
t-xas
- Membre Naturel
- Messages: 41
- Enregistré le: 19 Déc 2008, 16:40
-
par t-xas » 10 Juin 2009, 13:12
wé c'est bien au C qu'il faut coder ça, au fait le probleme se pose à la resolution de la fonction ,mais pour la création du tableau c'est facile.
-
uztop
- Membre Complexe
- Messages: 2396
- Enregistré le: 12 Sep 2007, 12:00
-
par uztop » 10 Juin 2009, 13:16
c'est quoi que tu appelles la resolution de la fonction ? La deuxieme question ?
La meilleure solution est a mon avis de stocker les deux plus grandes valeurs du tableau et de verifier a chaque etape si la valeur qu'on obtient est plus grande ou pas.
-
Sion
- Membre Naturel
- Messages: 20
- Enregistré le: 02 Mai 2009, 16:07
-
par Sion » 10 Juin 2009, 13:50
void remplir (int t[], int tail)
{
for(cpt=0;cpt {
t[cpt]=0;
}
}
-
uztop
- Membre Complexe
- Messages: 2396
- Enregistré le: 12 Sep 2007, 12:00
-
par uztop » 10 Juin 2009, 14:02
on evite de donner les reponses toutes faites dans le forum (mais bon pour cette fonction je pense que t-xas avait deja trouve)
D'ailleurs, pour que ca compile, il vaut mieux declarer cpt ;)
-
t-xas
- Membre Naturel
- Messages: 41
- Enregistré le: 19 Déc 2008, 16:40
-
par t-xas » 10 Juin 2009, 17:02
Oui merci en tout cas .
Mais j'ai trouver encore un probleme voilà le code source :
j'essaye de travailler un exercice voilà l'énoncé :
Écrire une fonction void remplir (int t[], int taille) qui permet de remplir un tableau
dentiers de taille quelconque avec des zéros.
Mai le probleme c'est que ça m'affiche toujours une erreur ,voici mon code source
#include
#include
void remplir (int tableau[4], int taille)
{
long i=0;
for (i = 0 ; i < 4 ; i++)
tableau[i] = 0;
}
int main(int argc, char *argv[])
{
long tableau [4] ;
long taille ;
long i = 0;
tableau[0] = 1;
tableau[1] = 9;
tableau[2] = 3;
tableau[3] = 10;
tableau[i]= remplir(tableau[i]);
printf("%ld\n",tableau[i]);
system("PAUSE");
return 0;
}
ça maffiche une erreur concernant les arguments .
merci
-
uztop
- Membre Complexe
- Messages: 2396
- Enregistré le: 12 Sep 2007, 12:00
-
par uztop » 10 Juin 2009, 17:13
void remplir (int tableau[4], int taille)
{
long i=0;
for (i = 0 ; i < 4 ; i++)
tableau[i] = 0;
}
Pourquoi tu mets la taille dans le prototype ? Tu passes int taille en argument, don le premier argument doit tout simplement etre int tableau[]
La boucle doit aller jusqua taille, pas jusqu'a 4.
Dans ta fonction main, l'appel de la fonction n'est pas bon.
Il faut appeler remplir de la facon suivante:
remplir(tableau, 4);
Ca va remplir les 4 premieres cases du tableau avec des 0 (une fois que la fonction remplir sera implementee correctement)
Sinon, pourquoi est ce que tu utilises des types long partout ? int marche tres bien dans ton cas.
-
t-xas
- Membre Naturel
- Messages: 41
- Enregistré le: 19 Déc 2008, 16:40
-
par t-xas » 10 Juin 2009, 17:26
Merci pour votre aide c'est utile.
Donc voila le code source ,mais maintenant ça affiche les données du tableau et non pas des zeros comme prévue
#include
#include
void remplir (int t[], int tail)
{
int i=0;
int tableau[tail];
for(i=0 ; i{
tableau[i]= 0;
}
}
int main(int argc, char *argv[])
{
long tableau [4] = {1,6,0,5};
long i = 0;
for (i = 0 ; i < 4 ; i++)
{
remplir(tableau, 4);
printf ("%ld\n",tableau[i]);
}
system("PAUSE");
return 0;
}
par Dominique Lefebvre » 10 Juin 2009, 17:30
t-xas a écrit:Merci pour votre aide c'est utile.
Donc voila le code source ,mais maintenant ça affiche les données du tableau et non pas des zeros comme prévue
#include
#include
void remplir (int t[], int tail)
{
int i=0;
int tableau[tail];
for(i=0 ; i<tail ; i++)
{
tableau[i]= 0;
}
}
Regarde ton code, ce n'est pas t[] que tu initialises avec des 0 mais tableau[]!
-
uztop
- Membre Complexe
- Messages: 2396
- Enregistré le: 12 Sep 2007, 12:00
-
par uztop » 10 Juin 2009, 17:32
ben oui, dans la fonction remplir, tu n'utilises pas le tableau que tu as passe en parametre (le int t[]). Tu ne fais les modifs que sur la variable locale tableau
-
t-xas
- Membre Naturel
- Messages: 41
- Enregistré le: 19 Déc 2008, 16:40
-
par t-xas » 10 Juin 2009, 17:50
wé j'avais remarqué ,merci
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 12 invités