Fonction pour tableau

Discutez d'informatique ici !
t-xas
Membre Naturel
Messages: 41
Enregistré le: 19 Déc 2008, 17:40

Fonction pour tableau

par t-xas » 10 Juin 2009, 13: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
d’entiers 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 d’entiers de taille quelconque.

Merci



uztop
Membre Complexe
Messages: 2396
Enregistré le: 12 Sep 2007, 13:00

par uztop » 10 Juin 2009, 13: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, 17:40

par t-xas » 10 Juin 2009, 14: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, 13:00

par uztop » 10 Juin 2009, 14: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, 17:07

par Sion » 10 Juin 2009, 14:50

void remplir (int t[], int tail)
{
for(cpt=0;cpt {
t[cpt]=0;
}
}

uztop
Membre Complexe
Messages: 2396
Enregistré le: 12 Sep 2007, 13:00

par uztop » 10 Juin 2009, 15: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, 17:40

par t-xas » 10 Juin 2009, 18: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
d’entiers 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, 13:00

par uztop » 10 Juin 2009, 18: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, 17:40

par t-xas » 10 Juin 2009, 18: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;
}

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 10 Juin 2009, 18: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, 13:00

par uztop » 10 Juin 2009, 18: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, 17:40

par t-xas » 10 Juin 2009, 18:50

wé j'avais remarqué ,merci

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite