B0njour| bonsoir "je suis nouveau en programmation c j'ai besoin de correct

Fermé
ciscom - Modifié le 20 sept. 2019 à 17:01
[Dal] Messages postés 6193 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 juillet 2024 - 20 sept. 2019 à 19:50
#include <stdio.h>
#include <stdlib.h>


int main()
{
    printf("Hello world!\n");
     int ndch,t,scd=0,N;
     printf("votre nombre est compose de combien de chiffres?\n ");
     scanf("%d",&ndch);
     int i=1
     while (i<= ndch)
     {
         printf("donne le % chiffre de votre nombre\n",i);
         scanf("%d",&t);
         sdc = sdc + t*t*t
         i = i+1
     }
     printf("ecrivez maintenant votre nombre au complet\n");
     scanf("%d", &N);
     if (N == scd)
     {
         printf(N,"est un nombre de AMSTRONG");

    }
    printf("desole!!!!!");



    return 0;
}

2 réponses

Tomsuper Messages postés 1926 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 19 août 2020 358
20 sept. 2019 à 16:53
Bonjour,

Dans votre ligne int i = 1 et i = i + 1 vous avez oublié le ; de fin de commande.

Sinon quelle est le problème ?

Cordialement
0
[Dal] Messages postés 6193 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 090
Modifié le 20 sept. 2019 à 19:55
Bonjour ciscom,

Tomsuper a raison. Sinon, en plus de ce qu'il signale au niveau des point-virgules, il y a aussi en ligne 11 un autre
;
manquant

En plus, pour corriger la syntaxe de ton programme il faudrait aussi remédier aux problèmes suivants :
  • en ligne 14 un signe % tout seul est mis dans la chaîne - s'il s'agit d'un spécificateur de format pour
    i
    , qui est un
    int
    , il faudrait que cela soit
    %d
    je suppose
  • en ligne 16,
    sdc = sdc + t*t*t;
    la variable
    sdc
    n'est jamais déclarée et le compilateur ne sait pas quoi en faire, il faudrait aussi l'initialiser, car autrement il y aura n'importe quoi dedans lorsque le programme exécutera cette ligne
  • printf(N,"est un nombre de AMSTRONG");
    n'est pas la bonne façon de faire pour afficher la valeur de la variable N, je suppose que c'est
    printf("%d est un nombre de AMSTRONG\n", N);
    que tu veux faire
  • il vaut mieux terminer les
    printf()
    par un
    \n
    pour être sûr que le texte envoyé dans la mémoire tampon de stdout soit bien affiché à l'écran, y compris celui ci-dessus et celui en ligne 26


Tous ces "problèmes" (à l'exception du dernier) sont signalés par le compilateur en compilant avec les warnings (compile toujours avec les warnings - option
-Wall
avec gcc, les warnings signalent dans 90% des cas des erreurs ou comportements anormaux ou dangereux) et en corrigeant les erreurs de compilation et causes des avertissements un par un en commençant par le premier et en recompilant jusqu'à ce que le code compile proprement sans erreurs ni avertissements.

Avant de poster, tu devrais utiliser les messages d'erreurs et d'avertissements pour corriger ton code par toi même. Si tu ne comprends pas un message d'erreur ou d'avertissement après avoir cherché par toi même, pose la question dans le forum. Le compilateur est ton ami.

Tu devrais aussi revoir les bases de la syntaxe du C.

Sinon, je n'ai pas regardé la pertinence et logique de ton code.

Dal
0