算法是第一年的伪代码IT

时间:2014-10-15 02:11:40

标签: algorithm logic computer-science pseudocode

我面临的问题是:

  

编写允许用户重复输入正数的伪代码   整数,直到输入奇数。然后它将打印总和   输入的所有数字(不包括奇数)。

示例:假设用户输入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

4 个答案:

答案 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

否则它将是一个无限循环或直到有人进入奇数。