Exercice

Résolu/Fermé
drBalise Messages postés 28 Date d'inscription lundi 18 mai 2015 Statut Membre Dernière intervention 6 juillet 2016 - Modifié par drBalise le 26/06/2015 à 22:47
drBalise Messages postés 28 Date d'inscription lundi 18 mai 2015 Statut Membre Dernière intervention 6 juillet 2016 - 27 juin 2015 à 23:37
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 mercredi 29 juillet 2009 Statut Contributeur Dernière intervention 1 mai 2022 92
Modifié par miramaze le 27/06/2015 à 00:03
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 lundi 18 mai 2015 Statut Membre Dernière intervention 6 juillet 2016
27 juin 2015 à 00:46
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
27 juin 2015 à 00:46
Il ne vaut mieux pas utiliser atoi(). La fonction est obsolète...
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 27/06/2015 à 01:33
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 lundi 18 mai 2015 Statut Membre Dernière intervention 6 juillet 2016 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
27 juin 2015 à 23:37
Ah! Je vois! merci à vous pour votre aide!!!
0