Boucle for en langage C

Fermé
contador12 - 24 févr. 2012 à 10:16
 Du crétin, te moquer point tu ne dois - 25 févr. 2012 à 02:31
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 ;
}



A voir également:

2 réponses

droan1512 Messages postés 115 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 14 avril 2015 5
24 févr. 2012 à 10:26
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
Il faut pas déclarer la variable i ?
0
droan1512 Messages postés 115 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 14 avril 2015 5
24 févr. 2012 à 11:02
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
droan1512 Messages postés 115 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 14 avril 2015 5
24 févr. 2012 à 11:04
si tu as besoin que je t'explique deux trois trucs dessus demande j'ai rien commenter
0
je comprends pas "int main(int argc, char *argv[]){"
Merci beaucoup !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
Modifié par fiddy le 24/02/2012 à 11:21
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
droan1512 Messages postés 115 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 14 avril 2015 5
24 févr. 2012 à 11:23
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