Boucle while en C

Résolu/Fermé
Bonjour,

Mon professeur me lance un défi: faire le code suivant avec UNE SEULE variable:


#include <stdio.h>
#include <stdlib.h>

int main()
{
int v_nombre;
int v_i;

printf("Entrez un nombre:");
scanf("%d", &v_nombre);
do
{
v_nombre++;
printf("\n%d", v_nombre);
}while (v_nombre <= v_i+10);

system("pause>nul"); //mettre en pause
return 0;
}
Configuration: Windows XP
Firefox 3.6

100 réponses

  • Votes
  • Date
  • Date décroissante
  1. Je ne suis pas un expert en C mais j'avoue ne pas comprendre a quoi te sert la variable v_i, d'autant plus plus qu'il me semble que tu ne lui donnes aucune valeur.
    1. oui la variable v_i n'est pas initialisée... ça risque pas de marcher comme tu veux..
      En gros tu veux saisir une valeur et afficher 10 fois de suite toutes les valeurs incrémentées de 1 à partir de ta valeur saisie?
      1. Donc voila ton code avec une seule variable :D. Je suis pas si mauvais que ca finalement xD
        1. xD !! ni moi, même si je pige pas a quoi il sert l'algo, rajouter +1 a chaque fois que le nombre est inférieur ou égal a 10?????
          1. ça ne fera pas grand chose en l'état s'il conserve cette forme d'écriture.. surtout s'il saisit un nombre > 10...
            1. La boucle v_i = v_nombre +10 et il faut en lever le + 10 a la fin de la boucle (désolé, pas bien copier le fichier source)

              Mais la donnée de l'exercice c'est d'enter un nombre et ensuite afficher les 10 nombre qui suivent

              On peut le faire avec une boucle FOR ou bien une DO WHILE.
              1. mais le truc c'est que j'arrive pas avec une seul variable, ça me donne une boucle infini
                1. Mais dans la boucle FOR je serai contrains à utiliser la variable "I" pour le faire 10 fois et la dans le code il y aurai 2 variables...

                  Es-que c'est possible de le faire avec une seul variable ou je devrai déclarer forfait?
                  1. ba non tu as reçu une valeur dans ta variable saisie.. c'est elle que tu incrémentes 10 fois... donc une seule variable
                    1. #include <stdio.h>
                      #include <stdlib.h>

                      int main()
                      {
                      int v_nombre;
                      printf("Entrez un nombre:");
                      scanf("%d", &v_nombre);

                      While v_nombre<=v_nombre+10
                      {
                      printf("%d", &v_nombre);
                      v_nombre=v_nombre +1;
                      }

                      printf(" aaaaaaaaaaaaaaaaa")

                      system("pause");

                      }

                      1. Bonjour

                        À mon avis, While v_nombre<=v_nombre+10 est toujours vrai, tu n'en sortiras jamais !

                        Pas très rusé, mais efficace :

                        #include <stdio.h>
                        #include <stdlib.h>
                        
                        int main()
                        {
                        int v_nombre;
                        printf("Entrez un nombre:");
                        scanf("%d", &v_nombre);
                        
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        printf("\n%d", ++v_nombre);
                        
                        system("pause>nul"); //mettre en pause
                        return 0;
                        }
                        1. Pourquoi toujours vrai???? avec cette algo que tu as proposé le prof ne s'avourat pas vaincu, il lui dira fai moi sa pour 1500 ( on m'a déja dit pareil ^^), non je pense que mon algorithme marcherais, quelqun peut tester??
                          1. Le prof peut toujours proposer un autre défi, n'empêche que celui-ci est relevé.
                            Je crois que si le prof a limité à 10, ce n'est pas par hasard.
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5