Programme pour trouver plus grand et le plus petit parmi les 5 numéros sans l'aide du tableau
Hier je suis allé pour une interview où j'ai été invité à créer un programme pour trouver plus grand et le plus petit parmi les 5 numéros sans l'aide du tableau.
Je sais comment créer le programme à l'aide du tableau.
int largestNumber;
int smallestNumber;
int numbers[n];
largestNumber=numbers[0];
smallestNumber=numbers[0];
for (i=0 ; i<n; i++)
{
if (numbers[i] > largestNumber)
{
largest = numbers[i];
}
if (numbers[i] < smallestNumber)
{
smallestNumber= numbers[i];
}
}
Mais comment le créer sans l'aide du tableau. Toute aide??
- Alors, où sont les chiffres, s'ils ne sont pas dans un tableau? Dans le cloud? 🙂
- std::cin, pas de stockage à tous, juste max et min
- Oui, vous pouvez le faire sans tableau.
- Avec un tableau,
std::minmax_element
est une meilleure solution que de rouler votre propre.
Vous devez vous connecter pour publier un commentaire.
std::cin
sans l'aide d'un tableau (ou similaire de stockage).std::max
jusqu'à maintenant.std::max_element
Fonctionne pour n'importe quel nombre de chiffres à partir de l'entrée standard:
Avertissement:
Techniquement, ce n'est pas nécessaire de travailler en C++ standard. Le minimum des itérateurs de la catégorie requise pour
minmax_element
estForwardIterator
le flux des itérateurs ne le sont pas. Une fois un itérateur d'entrée est déréférencé ou incrémenté, ses copies ne sont plus garantis dereferenceable ou comparables à d'autres itérateurs. Il Fonctionne Sur Ma MachineTM. 🙂Vous pouvez faire quelque chose comme ceci:
Ce lit numéros à partir de l'entrée standard jusqu'à ce que eof (il ne se soucient pas combien vous ont - 5 ou 1 000 000).
Par exemple 5 numéros consécutifs
Ce n'est pas une réponse efficace mais il fonctionne encore
vous pouvez utiliser la même logique pour fid la plus petite valeur
Laissez max tiendra le maximum de 5 numéros. Attribuer le premier nombre à max. Prendre la 2e nombre et de la comparer avec max si le 2ème numéro est plus grand que max l'attribuer à max d'autre ne rien faire. Ensuite, prendre la 3e nombre et de la comparer avec max , si le 3ème nombre est plus grand que max l'attribuer à max d'autre ne rien faire. Faire de même pour les 4e et 5e numéro. Enfin, max va contenir le maximum de 5 numéro.
Vous pouvez utiliser la liste (ou vecteur), ce qui n'est pas un tableau:
La
>
et<
sont transitives propriétés, donc sia > b
etb > c
, puisa > c
. De sorte que vous pouvezUtiliser un tri réseau!
Si vous voulez garder les choses simples, alors voici ma solution.
Il fonctionne quel que soit le nombre d'entiers prises à partir de l'entrée standard. Il travaille également pour les entiers négatifs. Entrez fin lorsque vous avez terminé.
Voici ce que j'ai fait, sans l'aide d'un tableau. C'était une méthode retourne le nombre le plus élevé de 5 points.
Un tableau va être beaucoup plus efficace, mais j'ai dû le faire les devoirs à la maison sans l'aide d'un tableau.
Ces fonctions sont très salissant, mais facile à suivre et donc facile à retenir et il utilise seulement la simple min et max des méthodes qui fonctionnent le mieux pour les 2 valeurs.
Voici mon oeuvre: Simple et court