IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Mon premier programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut Mon premier programme
    bonjour,

    Je suis en faculté des science L2 physique,le problème : en L1 les étudiants ont déjà fait un an de programmation... là je tente mon premier programme qui permet, dans un tableau de floats 3x3 de trouver le min de la ligne2 et le max de la col.2...

    Ça fait une heure et demie que je planche dessus et j’aimerais avoir réussi un programme avant le td (sinon le prof risque encore de m'en vouloir, de plus il refuse de me donner ses cours de L1, bref, le grand amour).

    Voici le fruit de mon difficile labeur, si quelqu'un pouvait m'aider à corriger mes erreurs...

    merci.
    Images attachées Images attachées  

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Salut,

    Franchement, il y a des tonnes de ressources sur le net et d'excellents livres sur le langage C. Ne te prends pas la tête avec un imbécile de prof qui refuse de donner ses cours de 1ère année. Tu peux pas exemple te procurer ce livre qui est une référence, mais les tutoriels de Dvpez.com peuvent déjà t'être très utile.

    Note pour la prochaine fois : bien de montrer tous les warnings et les erreurs, mais une image est problématique. Je ne peux pas copier coller pour tester ou extraire des morceaux. Mieux vaut copier coller le code entre balises [CODE] (accessible avec le bouton # dans l'éditeur de messages) et les erreurs de Codeblocs en cliquant droit dessus et choisissant "Copy content to clipboard".

    Mes remarques plus ou moins dans le désordre :

    Tu déclares mal ton tableau. En effet, le ; sert à terminer une instruction. Ici, tu ne veux pas terminer une instruction, mais la continuer. La virgule a plus de sens et c'est elle qui faut utiliser : int tab[2][2] = { {1,2}, {2,3} };
    Pour comprendre cet initialisation, il faut comprendre que tab est un tableau de 2 éléments, chacun élément étant un tableau de 2 éléments. Tu as donc : tab { elem1, elem2} et chaque elemi est de la forme {int1, int2}.

    Les lignes 10 et 11 ne veulent rien dire. Je ne sais pas trop ce que tu as voulu faire.

    Tu n'initialises pas tes variables avant de t'en servir. En particulier, min et max. Tu compares leur contenu à d'autres valeurs mais que contiennent-elles au début ? En C, le contenu d'une variable à sa création est indéterminée. min et max contiennent donc n'importe quelle valeur.

    Indente tes boucles for et utilises des accolades pour marquer clairement les blocs.

    Les lignes d'instructions doivent se terminer par un point-virgule. Les lignes avec printf() n'en possèdent pas. En fait, presque toutes tes lignes en sont dépourvues : il faut les rajouter.

    Pourquoi faire un #define L et ensuite déclarer une variable L ? Sais-tu comment fonctionne la directive de pré-processeur #define ?

    Corrige déjà tout ça et regarde ce que ça donne.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 82
    Par défaut
    Bonjour,

    Je te conseillerai de suivre un tuto sur internet tout comme Bktero. Car tu ne sembles pas trop ce que les lignes de codes que tu as faites, fonctionnent.

    Ton programme est assez simple donc en une journée de tuto tu auras les bases pour faire ce genre d'exercice.

    Par exemple ici tu déclares énormément de variable pour pas grand chose. Tes boucles sont mal formées. Et beaucoup d’instruction ne se terminent pas par des ';'.

    En gros je te conseille d'effacer ton programme (ou juste de le mettre de coté), suivre un tuto au moins jusqu’à la gestion des tableaux et des boucles. Puis ré-attaquer ton programme sans regarder la base que tu avais déjà.

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <stdio.h>
        #define L 3
        #define C 3
        int main(int argc, char *argv[])
     
    {
        int L,C;
        float A[L][C]={{0,1,3},
                    {2,3,9},
                    {8,10,11}};
        float i, j, I, J, min, max;
        min A[0][0]
        max A[0][0] //on initialise les valeur min et max à la tute première case
        for(j=0,j<C;j++) //dans ligne 2 et parcours des 3 colonnes
        {
        for(i=1)
        {
        if(A[1][j]<min)
        {
            min=A[i][j];
            I=i;
            J=j;
        }
      }
    }
        printf("minimum est= %f, avec ligne= %f et colone=2",min, I);
     
        for(i=1,i<L;I++)
        {
        for (j=1) //dans colonne 2 et parcours des 3 lignes
        {
         if(A[i][1]>max)
        {
            max=A[i][j];
            I=i;
            J=j;
        }
      }
    }
        printf("minimum est= %f, avec ligne= 2 et colone=%f",max, J);
        return 0;
    }
    j'avais refait l'histoire des points virgules et des for... après ce qui me chiffonent c'est L et C en effet... peut etre ne pas les mettre égales à 3?

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    pour les lignes 10 et 11 j'ai voulu dire qu'au depart la valeur min et max étaient à la première case du tableau... et L et C bein le porf l'avait fait dans un exemple "vite fait" bref... du coup le slignes 10 et 11 je les efface et j'enleve les valeurs 3 de L et C?

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <stdio.h>
        #define L
        #define C
        int main(int argc, char *argv[])
     
    {
        int L,C;
        float A[L][C]={{0,1,3},{2,3,9},{8,10,11}};
        float i, j, I, J, min, max;
        min=A[0][0];
        max=A[0][0];
        I=0;
        J=0;
        for(j=0;j<C;j++)
        {
        for(i=1)
        {
        if  (A[i][j]<min)
        {
            min=A[i][j];
            I=i;
            J=j;
        }
        }
        }
        printf("minimum est= %f, avec ligne= %f et colone=2",min, I);
     
        for(i=1;i<L;I++)
        {
        for (j=1) //dans colonne 2 et parcours des 3 lignes
        {
        if(A[i][j]>max)
        {
            max=A[i][j];
            I=i;
            J=j;
        }
        }
        }
        printf("minimum est= %f, avec ligne= 2 et colone=%f",max, J);
        return 0;
    }
    c'est peut etre un tout petit peu mieux non? :/

Discussions similaires

  1. Mon premier programme
    Par brisso dans le forum C
    Réponses: 21
    Dernier message: 01/10/2006, 21h21
  2. mon premier programme j2me
    Par adilo dans le forum Java ME
    Réponses: 1
    Dernier message: 14/09/2006, 08h43
  3. [JDOM] Mon premier programme java-xml
    Par adilo dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/07/2006, 13h12
  4. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26
  5. [Débutant] Mon premier programme: rien ne va...
    Par vincent0 dans le forum OpenGL
    Réponses: 10
    Dernier message: 02/08/2005, 13h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo