elements of array are odd or even

2 views (last 30 days)
clear all
clc
a=round(0+9*rand(10,1));
for n=a
if mod(n,2)==0
disp(n),disp('is even')
elseif n==0
disp(n),disp('is 0')
else
disp(n),disp('is odd')
end
end
the program must check which of the numbers of array are even or odd?but it doesnt work correctly...

Accepted Answer

Sriram Tadavarty
Sriram Tadavarty on 18 Mar 2020
Hi Pooneh,
The following updates will perform what is looked for
clear all
clc
a=round(0+9*rand(10,1));
for n=1:length(a) % For loop from 1 to length(a), then access each element of a with n, display n
if mod(a(n),2)==0
disp(num2str(n) + " is even")
elseif n==0
disp(num2str(n) + " is 0")
else
disp(num2str(n) + " is odd")
end
end
Hope this helps.
Regards,
Sriram
  2 Comments
pooneh shabdini
pooneh shabdini on 18 Mar 2020
Hi:) Thank you...but Do you know why my way doesn't work?
Sriram Tadavarty
Sriram Tadavarty on 18 Mar 2020
I can help you understand your code. In your code, you have placed the loop for n = a, here is a is a vector, which implies n is the complete vector but not the single element of the vector. As this is vector that is passed in to the conditions, there is not case satisfied this, going with the else statement. There by not giving what you expected.
So, the modification is made to loop it across each element in the code.
Hope this helps. Regards, Sriram

Sign in to comment.

More Answers (1)

pooneh shabdini
pooneh shabdini on 18 Mar 2020
Thanks again But I've read we can use a vector in this way in for loop....
  2 Comments
Sriram Tadavarty
Sriram Tadavarty on 18 Mar 2020
Yes, you could use. It depends on the purpose of what you intended to do.

Sign in to comment.

Categories

Find more on Scope Variables and Generate Names in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!