How can I Write a function that takes as input two numbers, x and y, and outputs √xy if they have the same signs, x y if they have opposite signs, and 0 if either is zero
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
numbers=input('x','s');
if numbers(diff(sign(x(x~=0))))
disp('sqrt(x*y).')
elseif numbers isequal(sign(previous), sign(current))
disp('(x/y).')
elseif numbers~=0
disp('0.')
end
This is the code I tried but I ended up getting an error in the second line. What is going wrong with my code?
2 Commenti
Walter Roberson
il 9 Mar 2020
x does not exist. You assigned the input to numbers . Also you input as a character vector not as numeric.
Walter Roberson
il 9 Mar 2020
Hint: if the product is not positive then the result is the product, and otherwise is the square root of the product. The code becomes quite simple.
Risposte (1)
Image Analyst
il 9 Mar 2020
You need to convert the string you collected from the user into numbers using sscanf(). Try this:
usersInputString = input('Enter x y ', 's')
numbers = sscanf(usersInputString, '%f %f')
x = numbers(1)
y = numbers(2)
if sign(x) == sign(y)
fprintf('sqrt(x*y) = %f\n', sqrt(x*y))
etc.
0 Commenti
Vedere anche
Categorie
Scopri di più su Create Model Web Views in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!