0
votes

J'ai besoin de mieux comprendre pour les boucles

Quelqu'un peut-il m'expliquer comment cette pour boucle forte> fonctionne ( ligne 9 dans le code ci-dessous strong>), et aussi si vous pouvez me montrer un exemple simple avec cela peut être très utile , merci de toute façon!

1 #include <iostream>
2 #include <cstdlib>
3 
4 using namespace std;

5 int main(){
6     int n, a , b , ma=0,mb=1000000001;
7     cin >> n ;
8     cin >> a;
9     for( n--; n ; --n ){
10         cin >> b;
11         if(abs(a-b) < abs(ma-mb))
12             ma=a , mb=b;
13         else
14             if(abs(a-b) == abs(ma-mb) && ma+mb > a+b)
15                 ma=a , mb=b;
16         a = b;
17     }
18     cout << ma << " " << mb;
19     return 0;
20 }


3 commentaires

Il est préférable de comprendre que les concepts fondamentaux de la langue d'un Bon manuel .


Le meilleur moyen de comprendre une telle boucle est d'utiliser le débogueur de votre IDE et de passer à travers la ligne de code par ligne, alors voyez ce qui arrive aux variables et à quel chemin est pris.


BTW, il s'agit d'un style de code vraiment mauvais, car les variables n'ont aucun nom significatif.


3 Réponses :


0
votes

Ce code sent beaucoup. Si vous donnez à n la valeur 10, il donne

9 (première fois en boucle, exçue n - ) Toutes les autres itérations qu'il exécute - n jusqu'à ce que n! = 0 (qui est la condition n


3 commentaires

n = 10; pour (int i = 1; i


@Gabriel: Je ne sais pas pourquoi votre professeur dirait une telle chose. Vous devriez probablement demander à nouveau, car cela n'a aucun sens. Je suggérerais exactement ce que tu as fait


@Gabriel La boucle écrite comme dans votre question est un exemple clair de mauvais code et de mauvaise pratique. Le code de nettoyage n'est pas une option.



0
votes

A pour la boucle fonctionne de la manière suivante:

Il fonctionne pendant un certain nombre de fois. Nous signifions cela avec une condition. Il a un début et une incrément: xxx

pour les boucles et toutes les boucles sont très utiles lorsque vous souhaitez effectuer des tâches répétitives.

permet de dire que vous Voulez-vous faire une partie et ce jeu aura 3 tours. Chacune de ces rondes peut être mise en œuvre comme une itération d'une boucle. Cela ressemblera à ceci: xxx

dans la boucle ci-dessus, nous commençons à 0. Une fois que nous atteignons 3, nous aurions déjà exécuté la boucle 3 fois. Après que chaque itération de la boucle + et de la round de la boucle ++ est exécutée, cela incrémente la variable ronde par 1. Nous pouvons l'incrémenter par une valeur différente en faisant: rond + = 2 ou rond * = 2 etc.


0 commentaires

1
votes

A pour la boucle est simplement une autre façon d'écrire une boucle tandis que. Donc, ceci: xxx

est identique à celui: xxx

lequel, dans ce cas particulier, est plus facile à lire. Tout d'abord, il diminue n , puis la boucle, décrémentation n à la fin de chaque boucle, jusqu'à ce que cette décrément provoque n pour évaluer à < Code> FALSE en devenant 0 .


0 commentaires