Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C > Problème à l'exercice 4 du chapitre tableaux > Lecture du sujet

Problème à l'exercice 4 du chapitre tableaux

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne Barbiche0 # Posté le 04/07/2008 à 00:10:37
"Planteur" pro
Avatar
Groupe : Membres
Tout d'abord bonjour à tous,

c'est mon premier post sur le forum et j'espère le faire comme il faut... o_O

Je suis le tutoriel sur le langage C depuis le début de la semaine, et c'est tellement clair que je n'ai encore rencontré aucun problème... J'ai fait les exercices précédents sans problèmes, cependant, pour une raison qui m'échappe, l'exercice 4 me résiste. Après avoir vu différents posts sur le forum (dont un ou le code est identique au mien, du moins de mon point de vue :lol: ) sans trouver ma réponse, je voudrais soumettre mon code à vos yeux d'experts...
je suis conscient que la solution doit être débile, mais j'ai cherché un bon moment par moi-même sans résultat... (De plus, ça me permet un premier contact avec les autres zéros :-° )

Mon code est le suivant (c'est mon mien ! :D ) :

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>

void maximumTableau(long tableau[], long tailleTableau, long valeurMax);

int main()
{
    long tableau[4] = {1,2,4,6}, i = 0;

    maximumTableau(tableau, 4, 3);

    for (i=0 ; i<4 ; i++)
        printf("%ld\n", tableau[i]);

    return 0;
}

void maximumTableau(long tableau[], long tailleTableau, long valeurMax)
{
    long i=0;

    for (i=0 ; i<tailleTableau ; i++);
    {
        if (tableau[i] > valeurMax)
        tableau[i] = 0;
    }
}


Il fonctionne sans erreurs mais les valeurs supérieures à la valeur maximum ne sont par remis à zéro !

Merci d'avance de vos réponses !
Hors ligne jsth # Posté le 04/07/2008 à 00:53:54
There is no spoon !
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Le problème est à la ligne 22, tu as mis un ';' à la fin, ce qui fait que ta boucle n'exécute rien du tout. Enlève le point virgule et ca devrait marcher.
Hors ligne josephfranck # Posté le 04/07/2008 à 01:03:04
Avatar
Groupe : Membres
salut
tu as raison jsth,ça marche comme ça,mais mon code blocks 8.02 ne signale aucune erreur ni même warnings pour son code
Hors ligne onime # Posté le 04/07/2008 à 01:05:24
Girls are such a drag
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
C'est parce que ce n'est pas une erreur du langage.
Ca ne sert à rien au point de vue algorithmique mais ce n'est pas faux.
Édité le 04/07/2008 à 01:07:18 par onime

Partout dans la vie, les gens essayeront de vous contrôler, vous diront comment vous devez vivre, ce que vous devez penser, comment vous devez agir. Mon message s'adresse à ces gens. Comme Bad Religion dit : "Chacun sait ce qui est le meilleur pour vous."

(Mark Hoppus)

Mon Blog

 
Hors ligne josephfranck # Posté le 04/07/2008 à 01:07:50
Avatar
Groupe : Membres
ok merci.
bonne soirée
Hors ligne jsth # Posté le 04/07/2008 à 01:20:52
There is no spoon !
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Plus précisément, en C le point-virgule sert aussi d'"instruction". Elle indique à l'ordinateur de ne rien faire. Ainsi quand tu écris

Code : C
1
for (i = 0;i < tailleTableau;i++);


c'est en fait équivalent à

Code : C
1
2
3
for (i = 0;i < tailleTableau;i++){
    ;
}


on pourrait aussi exagérer et écrire

Code : C
1
2
3
4
for (i = 0;i < tailleTableau;i++){
    ;;;;;;;;;
    ;;;
}


avec le même effet. Quand à ce qui suit

Code : C
1
2
3
4
{
    if (tableau[i] > valeurMax)
    tableau[i] = 0;
}


c'est aussi parfaitement légal: en C, les {} sont juste utilisés pour "asssembler" plusieurs instructions ensemble. C'est pour cela que tu n'es pas obligé de les mettre après un if () quand tu n'as qu'une seule instruction à exécuter ensuite, par exemple.

Hors ligne Barbiche0 # Posté le 04/07/2008 à 16:48:37
"Planteur" pro
Avatar
Groupe : Membres
Bonjour,

Merci de la réponse, jsth (en fait c'est le fait qu'aucune erreur ne s'affichait dans Code Blocks qui me bloquait aussi). Comme je l'avais prévu, c'était débile... Tellement que j'ai pas cherché de ce côté-là o_O

A très bientôt sur le forum j'espère !

Retour au forum "Langage C" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 884 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0804s (0.0536s)