Quelqu'un peut-il m'expliquer comment cette 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 Réponses :
Ce code sent beaucoup. Si vous donnez à 9 (première fois en boucle, exçue n code> la valeur 10, il donne p>
n - code>)
Toutes les autres itérations qu'il exécute - n code> jusqu'à ce que n! = 0 (qui est la condition n code> p> p>
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.
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: p> pour les boucles et toutes les boucles sont très utiles lorsque vous souhaitez effectuer des tâches répétitives. P> 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: p> 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. P> p> p>
A pour la boucle est simplement une autre façon d'écrire une boucle tandis que. Donc, ceci: est identique à celui: p> lequel, dans ce cas particulier, est plus facile à lire. Tout d'abord, il diminue n code>, puis la boucle, décrémentation n code> à la fin de chaque boucle, jusqu'à ce que cette décrément provoque n code> pour évaluer à < Code> FALSE code> en devenant 0 code>. p> p>
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.