我在将这个作业问题转换为伪代码时遇到了一些麻烦。我想知道这个逻辑是否正确。这个伪代码的逻辑是否正确?
问题:
编写一个程序,打印如下内容:1,3,5,7,9,11,13,15,17,19,在这之前用户输入的值。该程序不应该打印每行超过10个数字。打印的最后一行可能小于10.除了第一个数字和最后一个数字之外,应该有一个“,”将所有数字分开。每行上的最后一个数字后面应该有一个“。”。在退出之前,还应打印所有元素的总和:计算项目总数并输入结果。例如,如果用户输入76的输出应该如下 程序应尽可能的样品运行如下:
输入数(> = 1和< = 100):76 你的序列是
1,3,5,7,9,11,13,15,17,19。 21,23,25,27,29,31,33,35,37,39。 41,43,45,47 ,49,51,53,55,57,59,61,63 ,65,67,69,71,73,75
上述元素的总和1444。
我尝试:
Algorithm ElementsSequenceSeries
// declare variables
Var num, count, odd, sum, arrayOne, arrayTwo, arrayThree, arrayFour, arrayFive
// initialize variables
Count = 0; sum = 0; odd=0; arrayOne = 0; arrayTwo = 0; arrayThree = 0; arrayFour = 0; arrayFive = 0;
<BeginAlg>
Print (Input 1<= num <= 100);
Count = count + 1;
Odd = (count*2)–1; // create a list of odd numbers up to a user-defined value less than 100
If (num > odd)
Print(Odd);
// For the indices 0 to 8, place a comma after each element of the array.
For (num <=20 and num> odd) and (arrayOne[9]= {0,1,2,3,4,5,6,7,8})
Print (arrayOne[]= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
// For the index 9, place a fullstop after it.
For (num <=20 && num> odd) and (array One[]= 9)
Print arrayOne[]= 9 + “.”)
EndFor
For (num <=40 and num> odd) and (arrayTwo[]= {0,1,2,3,4,5,6,7,8})
Print (arrayTwo[]= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=40 and num> odd) and (arrayTwo[]= 9)
Print arrayTwo[]= 9 + “.”)
EndFor
For (num <=60 and num> odd) and (arrayThree[]={0,1,2,3,4,5,6,7,8})
Print (arrayThree[]= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=60 and num> odd) and (arrayThree[]= 9)
Print arrayThree[]= 9 + “.”)
EndFor
For (num <=80 and num> odd) and (arrayFour[]={0,1,2,3,4,5,6,7,8})
Print (arrayFour []= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=80 and num> odd) and (arrayFour []= 9)
Print arrayFour []= 9 + “.”)
EndFor
For (num <=100 and num> odd) and (arrayFive[]={0,1,2,3,4,5,6,7,8})
Print (arrayFive []= {0,1,2,3,4,5,6,7,8} + “,”);
EndFor
For (num <=100 and num> odd) and (arrayFive []= length)
Print arrayFive []= length + “.”);
EndFor
EndIf
Sum = arrayOne, arrayTwo, arrayThree, arrayFour, arrayFive;
Print(sum);
<EndAlg>
我不明白count = 0;请尽快解释。为什么count = 0?我们没有递增吗?印刷品(“n。”)不应该每行有一个?我对编程还不熟悉,请耐心等待。我感谢你的时间和精力。 – TechFool121 2014-10-02 12:25:05
嘿,出现了一个错误,我现在修正了它,实际上count是用来跟踪打印在一行中的元素的数量,因为它给出的问题是程序应该打印小于或者小于max。连续10个元素,将计数重置为0,它变为10(10个元素为0-9)。 – abhinash 2014-10-02 12:52:42
嗨“n”用于存储用户输入的号码。在整个计划中它是不变的。因为我们需要在n之前打印所有的奇数,所以我们需要一个不断变化的变量,这是由“我”在这里完成的。在每一个循环之后,它会以2递增。即,对于第一个循环,它将是1.对于第二个循环,它将是3,直到它小于n。所以我们需要打印我才能完成我们的工作。当循环到期时,我们在n之前打印所有数字,因此需要打印n一次。 – abhinash 2014-10-02 12:55:11