Boucle for en langage C

contador12 -  
 Du crétin, te moquer point tu ne dois -
Bonjour,

Je n'arrive pas à faire un exercice de TD. Si vous pouvez me donner un coup de main s'il vous plaît.

La consigne est la suivante:
Calculer la valeur de: s(n)= ? i et i=1 jusqu'à i=n
où n est fourni au clavier, ensuite afficher s(n) et sa valeur comme ceci:

Donner la valeur de n: 5
s(5)= 1+2+3+4+5
= 15

Voilà ce que j'ai jusque là effectué:

/* Directives de compilation */

#include <stdio.h>

/* Fonction main = point d'entree */

int main(void) {

/* Déclaration des variables */

int s=0, N;

printf("Donner la valeur de n: ") ;
scanf ("%d", &N) ;

/* Boucle de l'addition */

for (i=1 ; i<=N ; i=i+1)
{

printf ("s(%d)= %d ",N,i<=N) ;

}

return 0 ;
}

2 réponses

  1. droan1512 Messages postés 132 Statut Membre 5
     
    int N=0 ;
    printf("s(%d)="",N);
    for (i=1 ; i<=N ; i=i+1)
    {

    N=N+i ;
    printf("%d+",i);

    }
    printf("\b\n=%d",N); // \b est une correction pour supprimer le dernier +

    et voila mais c'est de l'arrache fais comme sa peut être des erreur a corriger dit moi si c'est le cas
    0
  2. contador12
     
    Il faut pas déclarer la variable i ?
    0
    1. droan1512 Messages postés 132 Statut Membre 5
       
      voila c'est terminer en propre mais quand meme bourin


      include <stdio.h>
      
      int main(int argc, char *argv[]){
      int i ;
      int n ;
      int r = 0;
      puts("entrez votre valeur :");
      scanf("%d",&n);
      
      printf("s(%d)=",n);
      for(i=1 ; i<=n ; i=i++)
      {
      
         r=r+i ;
         if(i==n){
           printf("%d\n=%d",i,r);
         }else{
           printf("%d+",i);
         }
      }
      }
      
      0
    2. droan1512 Messages postés 132 Statut Membre 5
       
      si tu as besoin que je t'explique deux trois trucs dessus demande j'ai rien commenter
      0
    3. contador12
       
      je comprends pas "int main(int argc, char *argv[]){"
      Merci beaucoup !
      0
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Attention à ne jamais utiliser i=i++, c'est indéfini.
      C'est #include et non include.
      Et il manque le return 0;
      Et puts renvoie à la ligne, donc ça ne fera pas la trace d'exécution souhaitée dans l'énoncé.

      Pour ma part, j'aurais plutôt utilisé une fonction. Ce qui donnerait un truc du genre :
      #include <stdio.h>  
      
      int fsomme(int n) {  
          int nb=0;  
      
          while (n-->0)  
              nb+=n+1;  
      
          return nb;  
      }  
      
      int main(void) {  
          int n;  
      
          printf("Donner la valeur de n: ");  
          printf("\b\n");  
          scanf("%d",&n);  
          if(n>0) {  
              int i;  
              int somme=0;  
      
              printf("s(%d)= ",n);  
              for(i=1;i<n;i++) {  
                  printf("%d+",i);  
                  fflush(stdout);  
              }  
              printf("%d\n",n);  
      
              printf("= %d\n",fsomme(n));  
          }  
              return 0;  
        }  
      
      0
    5. droan1512 Messages postés 132 Statut Membre 5
       
      et bien en faite c'est le prototype d'un main qui est souvent utilisé dans les programmes

      dans une programme tu peu l'appeler comme ca

      ./coucou

      et tu peu lui donné des arguments

      ./coucou 8 9 8

      ici on peu voir trois argument 8 9 et 8
      argc retourne le nombre d'argument plus l'appel de la fonction (./coucou qui est vue comme un argument) du programme donc argc = 4 dans ma commande
      argv est la variable qui contient les arguments
      argv[0] = ./coucou
      argv[1] = 8
      argv[2]= 9
      etc ...
      mais il faut faire attention 8 9 et 8 ne serons pas des int mais des char il faudra caster pour le récupérer sous forme de int.

      je pense que tu sera amener à l'utiliser un de c'est quatre
      je t'envoi un message privé avec mon mail si tu as besoin d'aide a l'occas
      0