Lorsque vous trouvez la valeur max à partir d'un tableau Pourquoi devrais-je taper i ++ code> en dehors du bloc code> si code> bloque?
int[] x = new int[] { 5, 7, -100, 400, 8 };
int i = 1;
int max;
max = x[0];
while (i < x.Length)
{
if (x[i] > max)
{
max = x[i];
}
i++;
}
Console.WriteLine("MAX="+max);
4 Réponses :
Si vous avez uniquement incrémenté i code> intérieur em> le bloc
si code> bloque, puis dès que la condition
x [i]> max < / Code> Évalue à
False code>,
i code> ne serait pas incrémenté. Et puisque nous utilisons
i code> comme indice de l'élément de tableau à examiner, la valeur de
x [i] code> ne changerait jamais et que la boucle irait à jamais. < p> Et, pour ce que cela vaut la peine, lorsque vous êtes itération sur un tableau, un
pour code> boucle est meilleur, car il vous permet de définir la variable d'itération, la condition et l'incrément Un endroit: p>
Si vous le mettez à l'intérieur du bloc IF, je ne vous incrémenterai que lorsque le maximum augmente, laissant la boucle tandis que la boucle pendant toujours si chaque valeur de la matrice est supérieure à celle avant. p>
Si chaque valeur dans le tableau est supérieure à celle avant i> c'est littéralement la seule fois que le tandis que la boucle code> ne sera pas infinie.
permet de supposer si votre matrice est composé de valeurs suivantes puis comment pouvez-vous trouver une valeur maximale à l'aide de i ++ code> à l'intérieur du bloc code> si code> bloque .Vous serez coincé dans une boucle infinie. P> p>
Si vous I ++ à l'intérieur du bloc IF, vous entrez à une boucle infinie: ( supposons ce tableau x = nouveau int [] {9, 8} p> int[] x = new int[] { 5, 7, -100, 400, 8 };
int max;
max = x[0];
foreach (int elem in x)
{
if (elem > max)
max = elem;
}
Console.WriteLine("MAX=" + max);
Console.ReadLine();
Qui / qu'est-ce qui dit que tu devrais?
Parce que vous n'augmentez que
i code> si la valeur à l'index, je devais être supérieur à
max code> si c'est à l'intérieur du bloc code> si le bloc. Nous voulons l'incrémenter sur chaque itération.
Il s'agit d'un modèle classique
pour code>, je vous suggère de l'utiliser
pour (i = 1; i ... en fait que nous venons de nous > x.max (); code>
Ou simplement remplacer la chose entière avec
console.writeline ("max =" + (nouveau [] {5, 7, -100, 400, 8} .max ()); code>
Pourquoi pensez-vous que cela devrait être à l'intérieur du
si code>?
Honnêtement, ce n'est pas un problème codant de son problème logique, il n'a rien à voir avec le code et plus à faire avec le comptage et devrait être fermé
Je suis vraiment désolé pour ce genre de question stupide. (Je reçois tellement de points moins: D) Mais je suis nouveau dans ce ...
Ignorer les points négatifs. Ils ne veulent rien dire. Si vous avez appris quelque chose de nouveau, aujourd'hui était une bonne journée!