Exercice

Résolu
drBalise Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
drBalise Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -
Salut à tous!
Je suis en difficulté devant un exercice en C.
En fait, Je voudrai écrire un programme qui après avoir saisi un nombre de départ affiche les 10 nombres suivants.Voici ce que j'ai fait:
#include<stdio.h>
#include<conio.h>
int main()
{
int i,N=0;
printf("Entrer un nombre\n");
scanf("%d",&N);
for (i=N+1;i<=N+10;i++)
{
printf(i);
}
}

Le problème est que cela ne marche pas correctement.Aidez-moi S.V.P!

1 réponse

miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
 
Hello,

il ne vaut mieux pas utiliser la fonction scanf, elle est relativement complexe a maitriser : https://stackoverflow.com/questions/2144459/using-scanf-to-accept-user-input (compilation sous linux, aucune idée si il faut ajouter des headers sous windows)

#include <stdio.h>

int main()
{
  int i = 0;
  char prompt[20];

  printf("Entrer un nombre : \n");

  fgets(prompt, sizeof prompt, stdin);

  int number = atoi(prompt);

  for (i = number + 1;i <= number + 10 ; i++) {
    printf("%i\n", i);
  }
}
0
drBalise Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Merci miramaze! Il marche.Même si J'avoue ne pas pour le moment comprendre la fonction fgets.En effet les lignes 10,12 et 15("%i") me paraissent obscurs.Je vais chercher.
Merci tout de même!
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Il ne vaut mieux pas utiliser atoi(). La fonction est obsolète...
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
drBalise,
Ligne 10 : cela permet la lecture d'une chaîne de caractère.
Ligne 12 : cela convertit la chaîne en nombre. Mais la fonction est obsolète... On utilise plutôt strtol().
Ligne 15 : c'est la syntaxe pour afficher un nombre. En l'occurrence, c'était cette ligne là qui n'allait pas dans ton programme.

Note : ne t'embête pas à passer par une chaîne de caractère. D'autant, que la version n'est pas correcte en pur C. Change juste ton printf(i) en printf("%d\n",i); ou printf("%i\n",i); That's all :-).
0
drBalise Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
Ah! Je vois! merci à vous pour votre aide!!!
0