Transformation tant que en do while

Résolu
Bonjour je dois transformer un algorithme avec une boucle tant que avec une autre boucle do while voila mon code avec TQ :
int main()
{ int N,S, I, nombre;
      S=0;
      printf (" Quel est le nombre de nombres entiers à saisir ? :");
      
      scanf("%d",&N);
      for (I=1;I<=N;I++){ printf( "Entrer un nombre entier :");

          scanf("%d",&nombre);

               (S=S+nombre);


              }

   printf(" La somme des %d des nombres saisies = %d",N,S);
    
    
    }


et voila mon essaie avec do while mais ça ne fonctionne pas il me marque ligne 16 "error: expected ')' before ';' token
voici le code :
#include<stdio.h>

int main()
{ int N,S, I, nombre;
      S=0;
      printf (" Quel est le nombre de nombres entiers à saisir ? :");

      scanf("%d",&N);
      if (I=1);do{ printf( "Entrer un nombre entier :");

          scanf("%d",&nombre);

               (S=S+nombre);


              }while(I<=N;I++);

   printf(" La somme des %d des nombres saisies = %d",N,S);


    }

3 réponses

  1. Bonjour

    Tu as aussi un problème d'interprétation ou de vocabulaire, quand tu dis
    un algorithme avec une boucle tant que avec une autre boucle do while

    Et que tu ajoutes que ton algorithme "tant que" est constitué d'une boucle for.

    while
    , avant d'être un opérateur, est un mot anglais qui signifie "tant que".
    Donc une boucle while est une boucle tant que.

    Avoir un algorithme en pseudo code du genre
    tant que ma condition est vrai
        faire une action / un calcul
    fin tant que

    Et traduire cet algorithme dans un langage veut dire écrire une boucle while, pas une boucle for.

    for
    est aussi un mot anglais, qui signifie "pour".
    Une boucle for dispose de plus de paramètres qu'une boucle while, Dalfab te les as décrit.
    En pseudo code, cela revendrait à
    pour chaque valeur allant de début à fin que je vais mettre dans une variable
        faire une action / un calcul à partir de la variable, ou pas
    fin pour
    

    1. Et regarde aussi la documentation de
      for
      .

      Dans le
      for(a;b;c){d}
      , il y a 4 choses :
      a) une initialisation, donc ce qu'il faut faire avant même de commencer.
      b) un test, qui dit s'il faut commencer et aussi s'il faut recommencer.
      c) une expression à faire juste avant de tester s'il faut recommencer.
      d) ce qu'il faut faire dans la boucle

      Dans le
      do{e}while(f);
      , il y a 2 choses :
      e) ce qu'il faut faire dans la boucle
      f) un test, qui dit s'il faut recommencer.

      Il faut trouver comment replacer les a, b, c, d en utilisant le
      do while()
      , et tu l'as pressenti, tu auras aussi besoin d'ajouter un
      if()
      .