Algorithm 算法是伪代码的第一年吗

Algorithm 算法是伪代码的第一年吗,algorithm,logic,computer-science,pseudocode,Algorithm,Logic,Computer Science,Pseudocode,我面临着这样一个问题: 编写允许用户重复输入正数的伪代码 整数,直到输入奇数为止。然后它会打印出总数 输入的所有数字中,不包括奇数 示例:如果用户输入22416887,程序将打印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.

我面临着这样一个问题:

编写允许用户重复输入正数的伪代码 整数,直到输入奇数为止。然后它会打印出总数 输入的所有数字中,不包括奇数

示例:如果用户输入22416887,程序将打印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
虫子

您需要将第5行n=number%2的副本移动到循环内部-如果n=0,则现在有一个无限循环,因为n在循环内部没有修改

可能的错误

如果被除数或除数为负数,某些语言将在模运算中返回负值,因此您可能需要取余数n=absnumber%2的绝对值

格式/语法

在这种情况下,您应该使用循环,这样可以消除第3行到第5行


缩进循环中的内容

我想您正在使用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
6. n=number%2
7. If (n==0) then sum+=number

number+sum应该是sum+=number,因为您需要将数字的值添加到sum中,所以number+sum不会分配到任何位置。

您需要在循环中添加以下两个值

6. n=number%2
7. If (n==0) then sum+=number

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

这里没有循环。这将读取最多2个数字,然后停止。我如何更正这一点。您有课程首选伪代码格式的示例吗?如果是,请查找循环并查看它们是如何显示的。同时,假装你是一台非常愚蠢的计算机,试着用铅笔和纸来跟踪你的代码,看看会发生什么。谢谢。我会试试看,看看是否有帮助。这让我更好地理解了发生的事情。再次感谢你的帮助,我真的很感激。我很难从商业经济原则过渡到it。这种变化会不会显示一份打印声明>