0
votes

Pour la boucle ne montre que la dernière itération

J'ai créé le programme le plus simple, mais il ne montre que la dernière itération de la boucle. Je n'ai jamais eu ce problème auparavant, alors peut-être que c'est pourquoi je ne vois pas ce qui ne va pas. Toute aide sera appréciée

int main() {

int number = 0;

    for (int i = 0; i < 2; i++)
    {
        printf("enter number: ");
        scanf("%d", &number);
    }  
    printf("Displaying entered information:\n");
    for (int i = 0; i < 2; i++)
    {
        printf("number: %d\n", number);
    }
}


6 commentaires

Vous n'avez qu'un seul numéro que vous stockez. Vous voulez probablement avoir un tableau de int vous avez lu dans


Dans la seconde passage via la boucle, scanf ("% d", et numéro); écrase le numéro que vous avez obtenu lors de la première passe si la boucle. "Utilisez-le ou perdez-le" s'applique à de telles valeurs. Dans ce cas, vous ne l'avez pas utilisé, alors vous l'avez perdu.


Je ne comprends vraiment pas le but de ce code


vous devez #include ou subir la colère du comportement indéfini


@Johncoleman oui je sais. C'est juste que je ne comprends pas ce qu'il est destiné à faire.


S'il vous plaît Modifier Votre question et montrez-nous ce qui vous attendait d'attendre une entrée donnée. Ne le décris pas, mais montrer un cas simple d'utilisation.


3 Réponses :


4
votes

Il suffit d'entrer et d'afficher dans la même portée ...

int main() {

    int number = 0;

    for (int i = 0; i < 2; i++)
    {
        printf("enter number: ");
        scanf("%d", &number);
        printf("Displaying entered information:\n");
        printf("number: %d\n", number);
    }
}


3 commentaires

Lorsque je vois votre nom d'utilisateur, je veux répondre avec C6


Et je réponds habituellement avec c3 ;-)


D5 - Mais "Évitez les discussions longues dans les commentaires" Nag apparaîtra longtemps avant que tout un jeu soit joué.



1
votes

Vous faites ce qui suit:

lire un numéro.
Écraser ce nombre.
Montrer le dernier numéro (par la valeur est écrasé). P>

Cela vous donne en effet l'idée que seule la dernière boucle est exécutée, mais ce n'est pas le cas. P>

Vous pouvez Mettez tout dans la même boucle et vous verrez que tout sera bien fait: P>

int number = 0;

    for (int i = 0; i < 2; i++)
    {
        printf("enter number: ");
        scanf("%d", &number);
        printf("Displaying entered information:\n");
        printf("number: %d\n", number);
    }


0 commentaires

0
votes

Et si vous voulez l'avoir comme une matrice et avec définir et certaines modifications, vous pouvez le rendre dynamique:

#define INPUT_SIZE 2

int main() {

    int number[INPUT_SIZE];

    for (int i = 0; i < INPUT_SIZE; i++)
    {
        printf("enter number: ");
        scanf("%d", &number[i]);
    }

    printf("Displaying entered information:\n");

    for (int i = 0; i < INPUT_SIZE; i++)
    {
        printf("number: %d\n", number[i]);
    }
}


0 commentaires