Change for loop to while loop.

2 次查看(过去 30 天)
Cha Rot
Cha Rot 2022-4-24
I need to convert this code from the for loop to while loop but when I tried to do so, it always comes out as error. Please help :(
n = input ("Input a number: ");
fprintf("\nOdd number: ");
for i = 1:2:n
fprintf("%d ",i);
end
fprintf("\nEven number: ");
for i = 2:2:n
fprintf("%d ",i);
end
fprintf("\nSum of Even numbers: ");
sum = 0;
for i = 2:2:n
sum = sum + i;
end
fprintf("%d",sum);
prod = 1;
fprintf("\nProduct of Odd numbers: ");
for i = 1:2:n
prod = prod*i;
end
fprintf("%d",prod);
  5 个评论
Cha Rot
Cha Rot 2022-4-24
This is the code I tried.
n = input ("Input an integer: ");
fprintf('Odd numbers: ')
x = 1;
while x < n
x = 1:2:n;
fprintf(' %d',x)
break
end
fprintf('\nEven numbers:')
y = 0;
while y < n
y = 2:2:n;
fprintf(' %d',y)
break
end
fprintf('\nSum of even numbers:')
y = 0;
even_sum = 0;
while y < n
y = 2:2:n;
even_sum = even_sum + y;
fprintf(' %d', even_sum)
break
end
fprintf('\nProduct of odd numbers: ')
x = 1;
while x < n
x = 1:2:n;
odd_product = odd_product * x
fprintf(' %d',x)
break
end
But the last 2 parts, the sum of even numbers and product of odd numbers always produces the wrong outputs.
DGM
DGM 2022-4-24
Again:
fprintf('\nProduct of odd numbers: ')
x = 1;
odd_product = 1; % need to initialize to something nonzero
while x <= n % less than or equal to
odd_product = odd_product * x;
fprintf(' %d',odd_product) % not x
x = x+2; % increment x
end

请先登录,再进行评论。

回答(2 个)

Dyuman Joshi
Dyuman Joshi 2022-4-24
%n = input ("Input an integer: ");
n=11;
fprintf('Odd numbers: ')
Odd numbers:
x=1;o=1;
while x<=n
fprintf(' %d',x)
o=o*x;
x=x+2;
end
1 3 5 7 9 11
fprintf('\nEven numbers:')
Even numbers:
y=0;e=0;
while y<=n
fprintf(' %d',y)
e=e+y;
y=y+2;
end
0 2 4 6 8 10
fprintf('\nSum of even numbers: %d', e)
Sum of even numbers: 30
fprintf('\nProduct of odd numbers: %d', o)
Product of odd numbers: 10395

DGM
DGM 2022-4-24
If you want to make things more complicated, you can:
n = 5; %input ("Input a number: ");
fprintf("\nOdd number: ");
i = 1;
while i <= n
fprintf("%d ",i);
i = i+2;
end
% and so on

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by