我面临的问题是:
编写允许用户重复输入正数的伪代码 整数,直到输入奇数。然后它将打印总和 输入的所有数字(不包括奇数)。
示例:假设用户输入2 24 16 8 7
,程序将打印50。
我想就此问题获得一些关于算法的反馈。
1. Start
2. Declare int number,n,sum=0
3. Do
4. Input number
5. Read number
6. n=number%2
7. If (n==0) then sum+=number
8. while (n==0)
9. If(n==1) then display number and print sum
10. Endif
11. Endwhile
11. Stop
答案 0 :(得分:0)
<强>错误强>
你需要在循环内移动第5行( n = number%2 )的副本 - 现在,如果n == 0
你有n
,那么{ {1}}未在循环内修改
可能的错误
如果被除数或除数为负数,某些语言将在模运算上返回负值,因此您可能需要取余数的绝对值( n = abs(数字%2) )
格式/语法
这是一个你应该使用do while循环的情况 - 这可以让你消除3到5行
缩进循环中的内容
答案 1 :(得分:0)
我认为您正在使用do while循环,我对您的算法进行了一些更改。我认为它解决了你的问题。
1. Start
2. Declare int number,n,sum=0
3. Do
4. Input number
5. Read number
6. n=number%2
7. If (n==0) then sum=sum+number
8. while (n==0)
9. print sum
10.Stop
答案 2 :(得分:0)
number+sum
应为sum+=number
,因为您需要将该数字的值添加到总和中,number+sum
不会在任何地方分配。
答案 3 :(得分:0)
您需要在循环内添加以下两个
6. n=number%2
7. If (n==0) then sum+=number
否则它将是一个无限循环或直到有人进入奇数。