How to write a while loop that returns the number of the value you put in?

1 visualización (últimos 30 días)
Hello, so the title might be confusing and i'll try to explain it better. I want to create a while loop so if the user put in the number let's say 4575, it'll return the number 4. Or 893 and itll return the number 3, 78 and itll return number 2 and so forth. Absolutely clueless on how to solve this honestly
  1 comentario
Stephen23
Stephen23 el 15 de Dic. de 2022
Editada: Stephen23 el 15 de Dic. de 2022
"Absolutely clueless on how to solve this honestly"
Some people will tell you to convert to text, but the real solution is to use mathematics: what does LOG10 give you?
Try it, and show us what you come up with.

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 16 de Dic. de 2022
Have the user put in the number as a string with input
userInput = input('Enter your number : ', 's');
fprintf('Your number of %s is %d digits long.\n', userInput, length(userInput));
Not sure how a while loop comes into play. Do you want that in a while loop and keep asking them unless they type quit or something? Like this:
userInput = 'a';
while ~startsWith(userInput, 'Q', 'IgnoreCase',true)
userInput = input('Enter your number (Q to quit): ', 's');
if startsWith(userInput, 'Q', 'IgnoreCase',true)
break
end
fprintf('Your number of %s is %d digits long.\n', userInput, length(userInput));
end
  2 comentarios
Tess
Tess el 18 de Dic. de 2022
ahhh i absolutely appreciate it, very helpful thank you !
Image Analyst
Image Analyst el 18 de Dic. de 2022
If this Answer solves your original question, then could you please click the "Accept this answer" link to award the answerer with "reputation points" for their efforts in helping you? They'd appreciate it. Thanks in advance. 🙂 Note: you can only accept one answer (so pick the best one) but you can click the "Vote" icon for as many Answers as you want. Voting for an answer will also award reputation points.

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 15 de Dic. de 2022
Editada: Jan el 15 de Dic. de 2022
x = [4575, 893, 78, 12345];
y = floor(log10(x) + 1)
y = 1×4
4 3 2 5
Do you really need a loop?
x = 10000;
n = 0;
while x >= 1
n = n + 1;
x = x / 10;
end
n
n = 5
  3 comentarios
Tess
Tess el 15 de Dic. de 2022
Movida: Walter Roberson el 15 de Dic. de 2022
thank you, appreciate it man !

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by