Boucle for en langage C

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

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. Il faut pas déclarer la variable i ?
      1. 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);
           }
        }
        }
        
      2. si tu as besoin que je t'explique deux trois trucs dessus demande j'ai rien commenter
      3. je comprends pas "int main(int argc, char *argv[]){"
        Merci beaucoup !
      4. Contributeur
        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;  
          }  
        
      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