Bonjour,
je suis étudiant en informatique et dans le contexte de mes cours on m'a demandé de tout d'abord créer une commande echo en C qui s'arrête lorsqu'elle lie le nombre 42 et j'ai fait cela (le code est passé donc pour ça c'est bon) :
Mais maintenant on me demande d'arrêterez le traitement quand la somme des trois prochains nombres est égale à 42, et j'ai beau réfléchir je ne vois pas comment faire... J'ai essayé de stocker en créant un tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <stdio.h> #include <stdlib.h> int main(void) { int v; while (fscanf(stdin, "%d", &v) != EOF) { if (v == 42) { break; } fprintf(stdout, "%d\n", v); } return EXIT_SUCCESS; }
mais ce code arrête le traitement trop tôt si on ne rencontre pas le cas où la somme des trois prochains nombre est égale à 42, j'ai essayé avec des fseek, rewind, en faisant 3 fois fscanf sur 3 variables différente puis en faisant 2 fseek pour revenir au bon endroit, mais je n'ai pas très bien compris ce qu'il se passait et ça ne marchait pas, ça n'affichait que le premier nombre entrée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int main(void) { int tab[3] = { 0 }; fscanf(stdin, "%d", &tab[0]); fscanf(stdin, "%d", &tab[1]); while (fscanf(stdin, "%d", &tab[2]) != EOF) { if (tab[0]+tab[1]+tab[2] == 42) { break; } fprintf(stdout, "%d\n", tab[0]); tab[0] = tab[1]; tab[1] = tab[2]; } system("PAUSE"); return EXIT_SUCCESS; }
J'ai l'impression que la solution est simple car ce n'est pas censé être un exercice difficile, mais j'ai beau cherché je ne trouve rien après plusieurs heures à chercher... Est-ce que vous pourriez m'aider ? Merci d'avance.
Partager